home *** CD-ROM | disk | FTP | other *** search
/ Collection of Tools & Utilities / Collection of Tools and Utilities.iso / dskut / boot142.zip / BOOT.DOC < prev    next >
Text File  |  1991-07-03  |  111KB  |  2,602 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7.  
  8.  
  9.  
  10.  
  11.  
  12.  
  13.  
  14.  
  15.  
  16.  
  17.           BOOT.SYS(tm)   -   Version 1.42
  18.  
  19.  
  20.  
  21.  
  22.  
  23.  
  24.  
  25.  
  26.           Use boot-up menus to select your MS-DOS system configuration
  27.  
  28.  
  29.  
  30.  
  31.  
  32.  
  33.  
  34.  
  35.  
  36.  
  37.                                _______
  38.                           ____|__     |                (R)
  39.                        --|       |    |-------------------
  40.                          |   ____|__  |  Association of
  41.                          |  |       |_|  Shareware
  42.                          |__|   o   |    Professionals
  43.                        -----|   |   |---------------------
  44.                             |___|___|    MEMBER
  45.  
  46.  
  47.  
  48.  
  49.  
  50.  
  51.  
  52.  
  53.           Written by Hans Salvisberg
  54.  
  55.           BOOT.SYS                     -  2  -                 Version 1.42
  56.  
  57.  
  58.  
  59.                                    Copyright Notice
  60.  
  61.           BOOT.SYS(tm) and the accompanying programs and documentation are
  62.  
  63.  
  64.                     Copyright (c) 1989, 1990, 1991 Hans Salvisberg
  65.                                  All rights reserved
  66.  
  67.  
  68.  
  69.  
  70.  
  71.                                   Table of Contents
  72.  
  73.           Introduction ...............................................   4
  74.  
  75.           About ASP ..................................................   5
  76.  
  77.           ASP Ombudsman Information ..................................   6
  78.  
  79.           License Agreement ..........................................   6
  80.  
  81.           Registration ...............................................   8
  82.  
  83.           Installation ...............................................  10
  84.  
  85.             Quick Start ..............................................  11
  86.  
  87.             Level 1: One Menu ........................................  12
  88.  
  89.             BOOT.SYS Command Line Parameters .........................  17
  90.  
  91.             The BOOT.SET Command and Environment Variables ...........  18
  92.                General Introduction to DOS Environment Variables .....  18
  93.                Using Environment Variables with BOOT.SYS .............  20
  94.                Trouble-shooting Variable Problems ....................  21
  95.  
  96.             Level 2: Several Independent Menus Following Each Other ..  22
  97.  
  98.             Level 3: Nested Menus ....................................  24
  99.  
  100.             Controlling the DOS= Command in MS/PC-DOS 5.00 ...........  30
  101.                General Introduction ..................................  30
  102.                BOOT.SYS and the DOS= Command .........................  32
  103.                DOS= Summary ..........................................  32
  104.  
  105.             BOOT.SYS Extensions ......................................  33
  106.                BOOT.EDIT .............................................  33
  107.                BOOT.OPTION FREE ......................................  34
  108.                BOOT.OPTION BOOTASSIST ................................  35
  109.                BOOT.OPTION EXTMON for Laptops ........................  36
  110.                BOOT.OPTION COLOR .....................................  38
  111.  
  112.             BOOT.COM Command Line Parameters .........................  38
  113.  
  114.           BOOT.SYS                     -  3  -                 Version 1.42
  115.  
  116.  
  117.  
  118.             PAUSE.SYS, a Debugging Aid ...............................  40
  119.  
  120.             Closing Remark ...........................................  41
  121.  
  122.           Answers to Common Questions ................................  42
  123.  
  124.           Revision History ...........................................  46
  125.  
  126.           BOOT.SYS                     -  4  -                 Version 1.42
  127.  
  128.  
  129.  
  130.                                      Introduction
  131.  
  132.           BOOT.SYS makes  it  possible  to display  one  or more  menus  at
  133.           boot-up time  and to  have different parts  of CONFIG.SYS  and/or
  134.           AUTOEXEC.BAT executed depending on which menu options are chosen.
  135.  
  136.           Many people  need different versions  of CONFIG.SYS depending  on
  137.           what application they  are going to run.  In the past you  had to
  138.           either rename  or edit your  start-up files and  reboot to get  a
  139.           different setup.  Now this  process  has become  much easier  and
  140.           safer by using BOOT.SYS.
  141.  
  142.           BOOT.SYS was written  for IBM-compatible Personal  Computers run-
  143.           ning under  MS-DOS or  PC-DOS 2.11  to 5.00. There  are no  other
  144.           system requirements.
  145.  
  146.           The  following  features make  BOOT.SYS  a  must-have  for  every
  147.           sophisticated PC installation:
  148.  
  149.             * easy  installation,  detailed examples  for  every  level  of
  150.               sophistication
  151.  
  152.             * up to  nine options  per  menu (one  line per  option) and  a
  153.               freely definable prompt area at the top of the screen
  154.  
  155.             * up to 25 consecutive menus, each defining  a different aspect
  156.               of your system configuration
  157.  
  158.             * up to  25 levels  of nested menus  (submenus), simplifying  a
  159.               systematic approach to systems configuration
  160.  
  161.             * only one  version of  CONFIG.SYS and  AUTOEXEC.BAT; no  copy-
  162.               ing/renaming of files and no rebooting
  163.  
  164.             * select menu options  by pressing the corresponding  digit key
  165.               or by moving an arrow
  166.  
  167.             * user-definable timeout and default option for each menu
  168.  
  169.             * full support for DOS= and the other new commands in MS/PC-DOS
  170.               5.00
  171.  
  172.             * switch to  an external  monitor  on boot-up  for some  laptop
  173.               computers
  174.  
  175.             * edit individual CONFIG.SYS lines on the fly while booting up
  176.  
  177.             * typically uses less than 200 bytes of resident DOS memory
  178.  
  179.             * do a warm or a cold boot from the DOS  command line or from a
  180.               batch file; change Alt-Ctrl-Del to do a cold  boot or disable
  181.               it altogether
  182.  
  183.             * includes PAUSE.SYS for debugging complex CONFIG.SYS setups
  184.  
  185.           BOOT.SYS                     -  5  -                 Version 1.42
  186.  
  187.  
  188.  
  189.                                    Acknowledgments
  190.  
  191.           BOOT.SYS(tm)  was developed  using  Borland's  Turbo C(R),  Turbo
  192.           Assembler(R), and Turbo Debugger(R), as well  as the Periscope(R)
  193.           debugger by The Periscope Company. The  documentation was written
  194.           with Lotus Manuscript(R).
  195.  
  196.           Many thanks to Michael J. Mefford of PC Magazine who has provided
  197.           valuable information about modifying CONFIG.SYS on the fly.
  198.  
  199.           Many thanks to the members of the ASP; their help and advice have
  200.           been invaluable for getting BOOT.SYS to you.
  201.  
  202.  
  203.  
  204.                                       Trademarks
  205.  
  206.           BOOT.SYS is a trademark of Hans Salvisberg.
  207.           Compaq is a trademark of Compaq Computer Corporation. IBM, PC-DOS
  208.           and PC are trademarks  of IBM Corporation. MS-DOS and  MS Windows
  209.           are trademarks of Microsoft Corporation. 386MAX is a trademark of
  210.           Qualitas, Inc. DESQview and QEMM386 are trademarks of Quarterdeck
  211.           Office Systems. 4DOS is a trademark of JP Software. Other product
  212.           names mentioned in this documentation may be  trademarks of these
  213.           or other companies.
  214.           Association  of Shareware  Professionals  and  the ASP  logo  are
  215.           trademarks of the Association of Shareware Professionals.
  216.  
  217.  
  218.  
  219.                                       About ASP
  220.  
  221.           ASP, the Association of Shareware Professionals(R), was formed in
  222.           April 1987 to strengthen the future of  shareware (user supported
  223.           software) as an  alternative to traditional  commercial software.
  224.           Its members, all of whom are programmers subscribing to a code of
  225.           ethics or non-programmers sincerely interested in the advancement
  226.           of shareware,  are committed  to the  concept of  shareware as  a
  227.           method of marketing.
  228.  
  229.           The ASP has adopted  general standards that all ASP  authors have
  230.           agreed to follow, some of which are:
  231.  
  232.           Support standards:
  233.               All ASP members' shareware products must provide support (in-
  234.               cluded in the purchase  price) for a minimum of  three months
  235.               from the date of registration.
  236.               Any money sent to an author to register  an unsupported prod-
  237.               uct shall be promptly  returned with an explanation  that the
  238.               product in question is no longer supported.
  239.               Known incompatibilities with  other software or  hardware and
  240.               major or unusual program  limitations are noted in  the docu-
  241.               mentation that comes with the shareware (evaluation) program.
  242.  
  243.           BOOT.SYS                     -  6  -                 Version 1.42
  244.  
  245.  
  246.  
  247.           'no crippling' standard:
  248.               The principle behind shareware is "try before you  buy."  ASP
  249.               believes that users have  a right to try a  fully functioning
  250.               shareware program  in  their regular  computing  environment.
  251.               Accordingly, ASP authors agree that:
  252.                 - The executable files (and/or items linked in with execut-
  253.                   ables)  in the  shareware  and registered  versions  will
  254.                   essentially be the same.
  255.                 - All the program's features will be fully documented.
  256.                 - Registration encouragement procedures which in  the judg-
  257.                   ment of  the Board are  either unreasonable or  unprofes-
  258.                   sional are not allowed.
  259.  
  260.           Miscellaneous standards:
  261.               The program  has been  thoroughly  tested by  the author  and
  262.               should not  be harmful  to other  files or  hardware if  used
  263.               properly.
  264.               Any discussion of  the shareware concept and  of registration
  265.               requirements is done in a professional and positive manner.
  266.  
  267.           If you  are interested in  ASP and in  Shareware issues, you  are
  268.           invited to come to the SHAREWARE forum on  CompuServe, where many
  269.           shareware authors meet regularly.
  270.  
  271.  
  272.  
  273.                               ASP Ombudsman Information
  274.  
  275.           This program is produced by a member of the Association of Share-
  276.           ware Professionals (ASP). ASP wants to make sure  that the share-
  277.           ware principle  works for  you. If  you are unable  to resolve  a
  278.           shareware-related problem  with an ASP  member by contacting  the
  279.           member directly, ASP may  be able to help. The ASP  Ombudsman can
  280.           help you  resolve a dispute  or problem with  an ASP member,  but
  281.           does not provide technical support for  members' products. Please
  282.           write to  the  ASP Ombudsman  at 545  Grover  Road, Muskegon,  MI
  283.           49442-9427, U.S.A. or send  a message via CompuServe Mail  to ASP
  284.           Ombudsman 70007,3536
  285.  
  286.  
  287.  
  288.                                   License Agreement
  289.  
  290.           BY INSTALLING BOOT.SYS ON YOUR SYSTEM YOU INDICATE YOUR AGREEMENT
  291.           TO THE  FOLLOWING TERMS AND  CONDITIONS. IF YOU  DO NOT AGREE  TO
  292.           THEM YOU ARE NOT ALLOWED TO USE THIS PROGRAM.
  293.  
  294.           BOOT.SYS AND THE  ACCOMPANYING PROGRAMS AND  DOCUMENTATION (LATER
  295.           ON COLLECTIVELY REFERRED TO  AS BOOT.SYS) ARE DISTRIBUTED  AS IS.
  296.           HANS SALVISBERG  (THE  AUTHOR) MAKES  NO  WARRANTY OF  ANY  KIND,
  297.           EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED  TO WARRANTIES OF
  298.           MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE, WITH RESPECT
  299.           TO THIS SOFTWARE AND DOCUMENTATION. IN NO EVENT  SHALL THE AUTHOR
  300.           BE LIABLE FOR ANY DAMAGES, INCLUDING LOST  PROFITS, LOST SAVINGS,
  301.  
  302.           BOOT.SYS                     -  7  -                 Version 1.42
  303.  
  304.  
  305.  
  306.           OR ANY OTHER INCIDENTAL  OR CONSEQUENTIAL DAMAGES ARISING  OUT OF
  307.           THE USE  OF OR THE  INABILITY TO  USE THIS  PROGRAM, EVEN IF  THE
  308.           AUTHOR HAS BEEN  ADVISED OF THE  POSSIBILITY OF SUCH DAMAGES,  OR
  309.           FOR ANY CLAIM BY ANY OTHER PARTY.
  310.  
  311.           BOOT.SYS is  a copyrighted  work  protected by  Swiss, U.S.,  and
  312.           international copyright law. It is not free, freeware,  or in the
  313.           public domain. It is  distributed as Shareware, which  means that
  314.           you may try it out  at no cost for three weeks; if  you determine
  315.           that it fits  your needs and  you wish to  use it regularly,  you
  316.           must register. If you choose not to pay the registration fee, you
  317.           must stop  using  BOOT.SYS after  the  initial trial  period  and
  318.           remove it from your computer, but you may still keep copies of it
  319.           and pass them on to others as outlined below.
  320.  
  321.           You may  give individual  copies of the  unregistered version  of
  322.           BOOT.SYS to your  friends and associates for  evaluation purposes
  323.           as described above. You must include all the  files (described in
  324.           the READ.ME  file) that  make up BOOT.SYS  without any  modifica-
  325.           tions, preferably in  the original self-extracting  LHarc archive
  326.           file. You may upload  BOOT.SYS to the public section of  a public
  327.           BBS, but you  may not place  it in any  user group or  commercial
  328.           library or distribute it for  a fee or in any way sell  copies of
  329.           it without express written permission from the Author.
  330.  
  331.           Under no circumstances may an unregistered version of BOOT.SYS be
  332.           used in  a  commercial (business,  corporate, government,  educa-
  333.           tional, or other  institutional) environment except for  the pur-
  334.           pose of evaluation on a single computer.
  335.  
  336.           You may not modify  or dis-assemble BOOT.SYS, nor  distribute any
  337.           modified or dis-assembled versions of BOOT.SYS.  BOOT.SYS may not
  338.           be included (bundled) with any other product for any reason what-
  339.           soever without prior written permission from the Author.
  340.  
  341.           You may install your registered copy of BOOT.SYS on more than one
  342.           computer at a time ONLY if no more than one of these computers is
  343.           usually running  at the same  time. You may  make as many  backup
  344.           copies of BOOT.SYS as you need for your personal backup purposes.
  345.  
  346.           You may NOT give, sell, lend, or otherwise transfer copies of the
  347.           registered version of BOOT.SYS  to any other person for  any rea-
  348.           son. Registered  copies of  BOOT.SYS have  a unique  registration
  349.           number and  display  your name  and  address. Your  registration,
  350.           including that information, are transferable  to future Shareware
  351.           versions of  BOOT.SYS, which will  then be considered  registered
  352.           versions.
  353.  
  354.           No version of BOOT.SYS may be rented or leased.
  355.  
  356.           Any use or distribution of BOOT.SYS, which  violates this license
  357.           agreement, will be considered  a copyright violation, and  may be
  358.           prosecuted to the full extent of the law.
  359.  
  360.           BOOT.SYS                     -  8  -                 Version 1.42
  361.  
  362.  
  363.  
  364.           U.S. Government RESTRICTED  RIGHTS: Use, duplication,  or disclo-
  365.           sure by the Government is subject to restrictions as set forth in
  366.           subdivision  (b)(3)(ii)  of the  Rights  in  Technical  Data  and
  367.           Computer Software clause at 252.227-7013.
  368.  
  369.  
  370.  
  371.                                      Registration
  372.  
  373.           BOOT.SYS is  not free! You  may try it  out at  no charge for  an
  374.           initial trial period to  determine if it fits your needs.  If you
  375.           want to continue  using BOOT.SYS after  the initial trial  period
  376.           you must register. This method of software  distribution is known
  377.           as Shareware.
  378.  
  379.           The registration fee for a single copy of BOOT.SYS  is SFR 70.- +
  380.           s&h (exchange rate US$ to  Swiss Francs is about $0.63 =  SFR 1.-
  381.           (July 1991)) for registration  with the author in  Switzerland or
  382.           $39 US + s&h for registration with PsL in the U.S.A.
  383.  
  384.           Payment of the single-copy  registration fee entitles you  to the
  385.           following benefits:
  386.  
  387.             * A disk with the current version of BOOT.SYS
  388.  
  389.             * A printed and bound manual
  390.  
  391.             * A special utility program that lets you transfer your license
  392.               to any  later shareware  versions  of BOOT.SYS  that you  may
  393.               obtain from any shareware source (getting an upgrade from the
  394.               author requires new registration).
  395.  
  396.             * Free support (by electronic mail or by mail) for the first 90
  397.               days after  payment,  consisting of  answering questions  and
  398.               fixing any  reproducible program  error(s) that  interfere(s)
  399.               with the  intended use  of the  program as  outlined in  this
  400.               documentation. The  author  may choose  not  to fix  problems
  401.               related to a  special hardware and/or  software configuration
  402.               and will then arrange  for a refund of the  registration fee,
  403.               if the  problem is reported  within 90  days of payment.  The
  404.               author makes no  other warranties, expressed or  implied, and
  405.               this warranty is expressly limited to the cost  of the regis-
  406.               tration fee.
  407.  
  408.             * BOOT.SYS is publicly supported on CompuServe in  the DOS Uti-
  409.               lities section of the IBMSYS forum. A  free CompuServe Intro-
  410.               Pak, which includes  a $15.00 usage  credit, is available  to
  411.               registered  BOOT.SYS  users  who  do  not  yet  subscribe  to
  412.               CompuServe. CompuServe  will open  the door for  a whole  new
  413.               world of information, services, and  interesting people. Com-
  414.               puServe is also  the best place  to obtain technical  support
  415.               for products from Hans Salvisberg (and  many other developers
  416.               and vendors).  The CompuServe  IntroPak (a  $39.95 value)  is
  417.               provided to registered  BOOT.SYS users compliments  of Compu-
  418.  
  419.           BOOT.SYS                     -  9  -                 Version 1.42
  420.  
  421.  
  422.  
  423.               Serve, Inc., and Hans Salvisberg. This offer  is dependent on
  424.               its continued availability from CompuServe, Inc.
  425.               For your information: Current CompuServe rates are $12.50 per
  426.               connect hour plus communications surcharges (e.g., $0.30/hour
  427.               in the U.S.A., $9.50/hour in Switzerland and the United King-
  428.               dom, varying rates in other countries).
  429.  
  430.           Note: All prices and terms are subject to change without notice.
  431.  
  432.           BOOT.SYS must  be registered before  it is  used in a  commercial
  433.           (business, corporate, government, educational, or  other institu-
  434.           tional) environment beyond initial evaluation or on more than one
  435.           computer.
  436.  
  437.           There are no  quantity discounts available for  BOOT.SYS, because
  438.           it does not  make sense to purchase  a large number  of single-PC
  439.           licenses. However, site licenses for installing  BOOT.SYS on mul-
  440.           tiple computers are available starting at 2 PCs.  Please refer to
  441.           the accompanying file SITELICE.DOC for details.
  442.  
  443.           The accompanying  file REGISTER.FRM  includes registration  forms
  444.           for registering single-PC copies of BOOT.SYS.
  445.  
  446.           If any of these files  are missing or if you have  any questions,
  447.           please contact the author:
  448.  
  449.             Hans Salvisberg, Bellevuestr. 18, CH-3095 Berne, SWITZERLAND
  450.  
  451.                CompuServe:  73237,3556
  452.                Internet:    73237.3556@compuserve.com
  453.  
  454.           BOOT.SYS                     -  10  -                Version 1.42
  455.  
  456.  
  457.  
  458.                                      Installation
  459.  
  460.           BOOT.SYS can be used on three different levels:
  461.             - one menu only
  462.             - several menus in sequence
  463.             - nested menus
  464.  
  465.           It is probably a  good idea to start experimenting  with BOOT.SYS
  466.           on the easiest level and to build up from there. This is also how
  467.           the installation  instructions will  be presented here.  Alterna-
  468.           tively, if you  already have (up  to nine) pairs of  AUTOEXEC.BAT
  469.           and CONFIG.SYS files, you  can use the procedure outlined  in the
  470.           Quick Start chapter to get BOOT.SYS working right away.
  471.  
  472.           Please keep in mind  that heavily editing CONFIG.SYS  and AUTOEX-
  473.           EC.BAT may lead to your PC not coming up  in the usual configura-
  474.           tion  or  even locking  up  at  boot-up  time.  Therefore  it  is
  475.           recommended  that  you  first  create  a   bootable  diskette  by
  476.           following these steps (at the DOS prompt):
  477.             1. Insert a new diskette in drive a: and FORMAT a: /S
  478.             2. COPY c:\COMMAND.COM a:
  479.             3. COPY c:\CONFIG.SYS a:
  480.             4. COPY c:\AUTOEXEC.BAT a:
  481.             5. Edit a:AUTOEXEC.BAT and a:CONFIG.SYS and make  sure that all
  482.                file names (including the external DOS commands) include the
  483.                drive name of your boot disk (here assumed to be c: ).
  484.             6. Boot from this diskette to see if everything is ok; check if
  485.                you can start your editor as usual.
  486.  
  487.           Many of the features  of BOOT.SYS will be presented  by examples.
  488.           In each chapter there is a simple example to  start with and some
  489.           more interesting ones  to give you an  idea of what  BOOT.SYS can
  490.           do. The upper-case portions  should be copied exactly  (case does
  491.           not matter), the lower-case  ones may be different for  your sys-
  492.           tem.
  493.           Example:
  494.                     DEVICE=c:\dos\ANSI.SYS
  495.  
  496.           The ANSI.SYS device driver  that comes with DOS is  often located
  497.           in the directory \dos  on drive c: ; if  this is not the  case on
  498.           your system then you should change the drive  and/or path accord-
  499.           ingly.
  500.  
  501.           The first example on each level will use DOS features only, so it
  502.           should work on every system running under MS-DOS  or PC-DOS. Usu-
  503.           ally there  is a CONFIG.SYS  file (CO)  and an AUTOEXEC.BAT  file
  504.           (AU) for each example.
  505.  
  506.           All text in curly braces (like {a comment}) is comment and should
  507.           be omitted.
  508.  
  509.           BOOT.SYS                     -  11  -                Version 1.42
  510.  
  511.  
  512.  
  513.           Quick Start
  514.  
  515.           If you already  have (up to  nine) pairs of different  CONFIG.SYS
  516.           and AUTOEXEC.BAT files, you  can start using BOOT.SYS  right away
  517.           by following these instructions:
  518.  
  519.             1. Create a new master CONFIG.SYS like this:
  520.  
  521.           CO     DEVICE=c:\bin\BOOT.SYS
  522.                  DEVICE=BOOT.1 1st configuration   {any name}
  523.                    DEVICE=BOOT.SET boot=config1    {use a meaningful name,
  524.                                                     e.g. Windows}
  525.                    {entire content of CONFIG.SYS for the 1st configuration}
  526.                  DEVICE=BOOT.2 2nd configuration   {any name}
  527.                    DEVICE=BOOT.SET boot=config2    {again, use an appropri-
  528.                                                     ate name}
  529.                    {entire content of CONFIG.SYS for the 2nd configuration}
  530.                  {etc.}
  531.                  DEVICE=BOOT.END
  532.  
  533.             2. Create a new  AUTOEXEC.BAT like this  (make sure that  there
  534.                are no duplicate labels in different sections):
  535.  
  536.           AU     c:\bin\BOOT SET
  537.                  IF ERRORLEVEL 10 GOTO not_installed
  538.                  GOTO %boot%
  539.                  :config1  {use the same name here as in CONFIG.SYS}
  540.                    {entire content of AUTOEXEC.BAT for the 1st configura-
  541.                     tion}
  542.                  GOTO done
  543.                  :config2  {use the same name here as in CONFIG.SYS}
  544.                    {entire content of AUTOEXEC.BAT for the 2nd configura-
  545.                     tion}
  546.                  GOTO done
  547.                  {etc.}
  548.                  :not_installed
  549.                  echo BOOT.SYS is not installed
  550.                  :done
  551.  
  552.             3. Press  Alt-Ctrl-Del   to  reboot   and  watch  BOOT.SYS   in
  553.                action.(1)
  554.  
  555.  
  556.           The real power  of BOOT.SYS, which comes  into play when  you use
  557.           multiple or even nested  menus, is not used here, but  this setup
  558.           may be sufficient for  many users' needs. The next  chapters will
  559.           explain how and why to create more sophisticated setups.
  560.  
  561.  
  562.  
  563.           --------------------
  564.           1 If you see messages like 'Unrecognized command' from CON-
  565.           FIG.SYS, please refer to the chapter <<Answers to Common
  566.           Questions>>.
  567.  
  568.           BOOT.SYS                     -  12  -                Version 1.42
  569.  
  570.  
  571.  
  572.           Level 1: One Menu
  573.  
  574.           For many users one menu is all they will ever  need. It gives you
  575.           the equivalent of choosing  between up to nine different  sets of
  576.           CONFIG.SYS and AUTOEXEC.BAT.
  577.  
  578.  
  579.  
  580.           Ex     Choose between one of the     [SCREEN]
  581.           1.1(1) following configurations:
  582.                    -  no RAM disk
  583.                    -  64K RAM disk
  584.                    -  128K RAM disk
  585.                  If there's a RAM disk, copy
  586.                  COMMAND.COM to it and make
  587.                  DOS reload the command pro-
  588.                  cessor from there.
  589.  
  590.  
  591.  
  592.           CO.11  BUFFERS=32
  593.                  FILES=20
  594.                  {any other of the usual commands that should apply to all
  595.                   the configurations; this goes for all the examples}
  596.  
  597.                  DEVICE=c:\bin\BOOT.SYS {optional command line parameters}
  598.  
  599.                   DEVICE=TOP
  600.                   DEVICE=TOP Select one of the following choices by
  601.                   DEVICE=TOP pressing the corresponding digit key, or by
  602.                   DEVICE=TOP moving the arrow with the Cursor-Up, Cursor-
  603.                   DEVICE=TOP Down, Home and End keys and pressing Enter
  604.                   DEVICE=TOP (or Cursor-Right):
  605.                   DEVICE=TOP
  606.  
  607.                  DEVICE=BOOT.1 no RAM disk
  608.                   DEVICE=BOOT.SET boot=no_vdisk
  609.  
  610.                  DEVICE=BOOT.2 64K  RAM disk
  611.                   DEVICE=c:\dos\VDISK.SYS size=64 sector=512 dir=64
  612.                   DEVICE=BOOT.SET boot=vdisk
  613.  
  614.  
  615.  
  616.  
  617.  
  618.  
  619.  
  620.  
  621.           --------------------
  622.           1 The screen shots are deliberately reproduced in a small scale.
  623.           They are intended to provide a view of the general screen layout
  624.           only; for the text please refer to the corresponding CONFIG.SYS
  625.           listing. In the Shareware documentation they are omitted.
  626.  
  627.           BOOT.SYS                     -  13  -                Version 1.42
  628.  
  629.  
  630.  
  631.                  DEVICE=BOOT.3 128K RAM disk
  632.                   DEVICE=c:\dos\VDISK.SYS size=128 sector=512 dir=64
  633.                   DEVICE=BOOT.SET boot=vdisk
  634.  
  635.                  DEVICE=BOOT.END
  636.  
  637.                  {any other of the usual commands that should apply to all
  638.                   the configurations; this goes for all the examples}
  639.  
  640.  
  641.  
  642.           AU.11  c:\bin\BOOT SET
  643.                  IF ERRORLEVEL 10 GOTO not_installed
  644.                  GOTO %boot%
  645.  
  646.                  :vdisk
  647.                   COPY c:\COMMAND.COM d:
  648.                   SET COMSPEC=d:\COMMAND.COM
  649.                   GOTO done
  650.  
  651.                  :no_vdisk
  652.                   ECHO Sorry, there is no RAM disk
  653.                   GOTO done
  654.  
  655.                  :not_installed
  656.                   ECHO BOOT.SYS is not installed!
  657.  
  658.                  :done
  659.                  PATH c:\dos;c:\bin
  660.  
  661.  
  662.  
  663.           The part of CONFIG.SYS that is controlled by BOOT.SYS starts with
  664.           the BOOT.SYS line and ends with the BOOT.END  line. Between these
  665.           two lines  you define the  menu to  be displayed  as well as  the
  666.           commands to be executed for each menu option.
  667.  
  668.           The text to the right of TOP is displayed at  the top of the menu
  669.           screen. You may  use most of the  characters of the  PC character
  670.           set (including the box and foreign characters). Unfortunately DOS
  671.           converts all lower-case characters in the range of  'a' to 'z' to
  672.           upper case(1); a work-around to this problem is  presented in the
  673.           next example. There is no upper limit to the number of TOP lines,
  674.           as long as  they fit on the  screen, along with all  the options;
  675.           TOP may be omitted altogether and BOOT.SYS will display a default
  676.           text.
  677.  
  678.  
  679.  
  680.  
  681.  
  682.  
  683.           --------------------
  684.           1 This applies to the BOOT.SET command as well.
  685.  
  686.           BOOT.SYS                     -  14  -                Version 1.42
  687.  
  688.  
  689.  
  690.           The BOOT.1 line introduces the first menu option. All text to the
  691.           right of BOOT.1 is  displayed as the option text.  Between BOOT.1
  692.           and BOOT.2  there may  be zero  or more of  the usual  CONFIG.SYS
  693.           commands (all kinds, not  just DEVICE= ). These commands  will be
  694.           executed if  the  user  selects option  1  and will  be  bypassed
  695.           silently otherwise.
  696.  
  697.           The BOOT.SET line is  an instruction to BOOT.SYS to define  a DOS
  698.           environment variable that can  be used later on  in AUTOEXEC.BAT.
  699.           It is explained in detail in <<The BOOT.SET  Command and Environ-
  700.           ment Variables>>.
  701.  
  702.           There may be up to nine options each beginning with a correspond-
  703.           ing BOOT.n line. The options must be  numbered consecutively from
  704.           1 up to 9.
  705.  
  706.           You may insert empty lines and comment lines ( REM ) wherever you
  707.           like; REM was  introduced with DOS  4.00, for older versions  you
  708.           can insert comments between BOOT.SYS and BOOT.END like this:
  709.  
  710.                  DEVICE=REM any comment
  711.  
  712.           So much for the CONFIG.SYS  part of our first BOOT menu;  even if
  713.           you think you know enough  already you should read on, up  to the
  714.           end of the next section.
  715.  
  716.           Very often  different commands must  be executed in  AUTOEXEC.BAT
  717.           depending on which boot-up configuration is selected.  It is even
  718.           possible that  all your  configurations use  the same  CONFIG.SYS
  719.           commands and  differ only  in the contents  of AUTOEXEC.BAT  (see
  720.           example 1.2). This can be done by defining  one or more variables
  721.           in CONFIG.SYS, which are kept in the very  small part of BOOT.SYS
  722.           that stays resident.
  723.  
  724.           Calling the companion program BOOT.COM with the  SET parameter in
  725.           AUTOEXEC.BAT copies the  variables from the resident  BOOT.SYS to
  726.           the DOS environment, where they can be used  like any other envi-
  727.           ronment variables defined  with the SET ,  PATH , or PROMPT  com-
  728.           mands in DOS(1). If BOOT.COM cannot find the  resident driver, it
  729.           displays an error message and returns an ERRORLEVEL of 10.
  730.  
  731.           There are many ways to use environment variables,  e.g. as labels
  732.           in GOTO statements, to  conditionally execute commands or   GOTOs
  733.           in IF  statments, as  program parameters,  or even  to branch  to
  734.           different batch files. There  is a short introduction to  the use
  735.           of environment variables  in <<The BOOT.SET Command  and Environ-
  736.           ment Variables>>.
  737.  
  738.  
  739.           --------------------
  740.           1 In short: if there is a variable definition name=value and you
  741.           put %name% anywhere in a batch file, then DOS will replace %name%
  742.           with value . If the variable name is not defined, then DOS will
  743.           simply remove %name% .
  744.  
  745.           BOOT.SYS                     -  15  -                Version 1.42
  746.  
  747.  
  748.  
  749.           Ex 1.2 On a certain LAN you may want [SCREEN]
  750.                  to choose between the follow-
  751.                  ing options:
  752.                    -  no network support
  753.                    -  XNS protocol
  754.                    -  TCP/IP protocol
  755.                  Display the menu white on
  756.                  blue, use both upper-case and
  757.                  lower-case letters, and rear-
  758.                  range the menu on the screen.
  759.  
  760.  
  761.  
  762.           CO.12  DEVICE=c:\bin\BOOT.SYS /CX1f /L18 /U^
  763.                   DEVICE=TOP
  764.                   DEVICE=TOP
  765.                   DEVICE=TOP   ^What kind of network support do you need?
  766.                   DEVICE=TOP
  767.                   DEVICE=TOP
  768.                   DEVICE=TOP
  769.                  DEVICE=BOOT.1 none
  770.                  DEVICE=BOOT.2 ^X^N^S
  771.                   DEVICE=BOOT.SET net=xns
  772.                  DEVICE=BOOT.3 ^T^C^P/^I^P
  773.                   DEVICE=BOOT.SET net=tcp
  774.                  DEVICE=BOOT.END
  775.  
  776.  
  777.  
  778.           AU.12  ECHO OFF
  779.                  CLS
  780.                  c:\bin\BOOT SET >NUL:          {>NUL: hides BOOT.COM's
  781.                  IF "%net%" == "" GOTO no_net    output}
  782.  
  783.                  auto%net%
  784.  
  785.                  :no_net
  786.                  PATH c:\dos;c:\bin
  787.  
  788.  
  789.  
  790.           The command line parameters will cause BOOT.SYS to use the /Color
  791.           1f (heX), to  put 18 spaces to  the /Left of the  option numbers,
  792.           and to  indent the TOP  text just insert  spaces in these  lines.
  793.           BOOT.SYS will translate all characters in the range of 'a' to 'z'
  794.           to lower case  except for those  preceded by a '^' character  (or
  795.           any other you specify) which will be displayed in /Upper case.
  796.  
  797.           This LAN does not need any drivers in  CONFIG.SYS, so the options
  798.           are empty except for  the BOOT.SET commands. If the  user selects
  799.  
  800.           BOOT.SYS                     -  16  -                Version 1.42
  801.  
  802.  
  803.  
  804.           either XNS or TCP/IP then AUTOEXEC.BAT branches to autoxns.bat or
  805.           autotcp.bat respectively(1), which will load  the necessary driv-
  806.           ers.
  807.  
  808.           This example demonstrates  how to control  the appearance of  the
  809.           menus by using additional empty TOP lines, indenting  the text on
  810.           the TOP lines, and using the /Left switch. There is also a /Spac-
  811.           ing switch which indicates the spacing between  the menu options;
  812.           the default is  2, acceptable values are  1, 2, etc., as  long as
  813.           all the menu options fit on the screen. - For the sake of brevity
  814.           the remaining examples are not optimized for good  looks, and the
  815.           /Uppercase switch will be omitted, too.
  816.  
  817.  
  818.  
  819.           Ex 1.3 Choose
  820.                    -  whether you want a RAM disk, and
  821.                    -  whether you need ANSI.SYS.
  822.                  If the user does not press any key within 5 seconds then
  823.                  take the default of RAM disk and no ANSI.SYS.
  824.  
  825.  
  826.  
  827.           CO.13  DEVICE=c:\bin\BOOT.SYS /D2 /T5
  828.                   DEVICE=TOP  Select your system configuration
  829.  
  830.                  DEVICE=BOOT.1 no RAM disk, no ANSI.SYS (all RAM above DOS
  831.                                    available)
  832.  
  833.                  DEVICE=BOOT.2 64K RAM disk, no ANSI.SYS
  834.                   DEVICE=c:\dos\VDISK.SYS size=64 sector=512 dir=64
  835.  
  836.                  DEVICE=BOOT.3 no RAM disk, ANSI.SYS
  837.                   DEVICE=c:\dos\ANSI.SYS
  838.  
  839.                  DEVICE=BOOT.4 64K RAM disk and ANSI.SYS
  840.                   DEVICE=c:\dos\VDISK.SYS size=64 sector=512 dir=64
  841.                   DEVICE=c:\dos\ANSI.SYS
  842.  
  843.                  DEVICE=BOOT.END
  844.  
  845.  
  846.  
  847.           The command line parameters will cause BOOT.SYS to /Timeout after
  848.           5 seconds and continue the boot process using the /Default option
  849.           #2. Other command line parameters will be introduced  in the next
  850.           section.
  851.  
  852.  
  853.  
  854.           --------------------
  855.           1 When execution is transferred to another batch file (without
  856.           the CALL statement introduced in DOS 3.30) it does not return,
  857.           i.e. the rest of the calling batch file is not executed.
  858.  
  859.           BOOT.SYS                     -  17  -                Version 1.42
  860.  
  861.  
  862.  
  863.           This example proves that one menu is not enough  when you need to
  864.           make more than one  independent decision. Just imagine  you would
  865.           also like to specify whether to load your  keyboard macro program
  866.           or not: this  would take another  four options! Example 2.1  will
  867.           show a better solution.
  868.  
  869.  
  870.           BOOT.SYS Command Line Parameters
  871.  
  872.           Most of the command line parameters of BOOT.SYS have already been
  873.           introduced informally and  they are explained  in detail in  this
  874.           chapter.(1)
  875.  
  876.             /CXhh  Color to be used for the menu, usually  specified by two
  877.             /Cn    hexadecimal digits hh ;  if you prefer  you may use  the
  878.                    decimal equivalent n instead.  The values for hh  can be
  879.                    taken from the following table (the background gives the
  880.                    first and the foreground the second digit):
  881.  
  882.                          color      background     foreground
  883.                                                  normal  bright
  884.                          black          0?         ?0      ?8
  885.                          blue           1?         ?1      ?9
  886.                          green          2?         ?2      ?A
  887.                          cyan           3?         ?3      ?B
  888.                          red            4?         ?4      ?C
  889.                          magenta        5?         ?5      ?D
  890.                          brown          6?         ?6      ?E
  891.                          white          7?         ?7      ?F
  892.  
  893.                    For monochrome systems use one of  the following values:
  894.                    02 =normal, 2F =high intensity, 70 =reverse video (hexa-
  895.                    decimal).
  896.                    Default value: /CX2F (bright white on green)
  897.  
  898.             /Dd    Default option: the arrow will point to  that option and
  899.                    if there is a timeout specified then that option will be
  900.                    chosen.
  901.                    Default value: /D1
  902.  
  903.             /Ln    Number of  positions to indent  the option numbers  from
  904.                    the left edge of the screen.
  905.                    Default value: /L5
  906.  
  907.             /N+    Turn NumLock on  or off, for  those who use the  numeric
  908.             /N-    keypad to select options.
  909.  
  910.             /P     Display the menu identifier in the lower right corner of
  911.                    the screen. This  may be useful  for setting up,  debug-
  912.                    ging, and  discussing  complex menu  systems  and it  is
  913.                    explained in example 3.1.
  914.  
  915.           --------------------
  916.           1 You may use '-' instead of '/' as the switch character.
  917.  
  918.           BOOT.SYS                     -  18  -                Version 1.42
  919.  
  920.  
  921.  
  922.             /Sn    Spacing between the option lines.
  923.                    Default value: /S2 (double-spaced)
  924.  
  925.             /Tn    Timeout: If  the user does  not press  any key within  n
  926.             /T-n   seconds (or  n clock  ticks  for /T-n ,  18.2 ticks  per
  927.                    second),  then  execution  continues  with  the  default
  928.                    option. Pressing any key within the  specified time dis-
  929.                    ables the timeout.
  930.                    /T0 is legal; BOOT.SYS will check if there is a key code
  931.                    waiting in the keyboard buffer  and continue immediately
  932.                    if the buffer is  empty. Most BIOSes accept  key presses
  933.                    right after the initial beep.
  934.             /T     No timeout; this is the default.
  935.  
  936.             /Uc    Shift character:  All characters preceded  by c will  be
  937.                    displayed in upper case, all others in  lower case. This
  938.                    applies to the letters 'a' to 'z' on  the TOP and BOOT.n
  939.                    lines. To display a c on the screen, write cc .
  940.                    There is no  default value for c ;  /U^ or /U~  are good
  941.                    choices.
  942.             /Uct   Shift and toggle character (analogous to Shift and Caps-
  943.                    Lock on your keyboard):
  944.                    If this parameter is  specified, all lines start  out in
  945.                    lower case, t changes  case permanently and c   only for
  946.                    the next character.
  947.                    Example with /U^\ : lower\UPPER\lower^Proper\IM^pROPER
  948.                    Use tt or ct to display a t .
  949.             /U     All characters 'a'  to 'z' will  be upper-case. This  is
  950.                    the default.
  951.  
  952.  
  953.           The BOOT.SET Command and Environment Variables
  954.  
  955.              General Introduction to DOS Environment Variables
  956.  
  957.           The command  processor of MS/PC-DOS  maintains a special  storage
  958.           area called the environment, which contains any number of charac-
  959.           ter strings (called variables) of the form
  960.  
  961.                  NAME=value
  962.  
  963.           Every variable has a name, usually composed  of upper-case alpha-
  964.           numeric characters,  and a value,  mixed-case and sometimes  even
  965.           with  embedded  space characters.  DOS  automatically  defines  a
  966.           variable called  COMSPEC  that points  to  the command  processor
  967.           file, and  you usually  define at least  another variable  called
  968.           PATH in AUTOEXEC.BAT. At the DOS prompt enter the command
  969.  
  970.                  SET
  971.  
  972.           and you will see something like
  973.  
  974.                  COMSPEC=C:\DOS\COMMAND.COM
  975.                  PATH=c:\dos;c:\util;c:\myapp
  976.  
  977.           BOOT.SYS                     -  19  -                Version 1.42
  978.  
  979.  
  980.  
  981.           The SET  command lets you  look at the  environment, and it  also
  982.           lets you define variables like this (try it!):
  983.  
  984.                  SET test=ok
  985.  
  986.           Again, enter SET without anything else on the line to display the
  987.           environment, and you will see:(1)
  988.  
  989.                  COMSPEC=C:\DOS\COMMAND.COM
  990.                  PATH=c:\dos;c:\util;c:\myapp
  991.                  TEST=ok
  992.  
  993.           Two special  environment  variables ( PATH  and  PROMPT ) are  so
  994.           important for DOS that they each have a DOS command with the same
  995.           name, but they can easily be manipulated with the general-purpose
  996.           SET command as well.
  997.  
  998.           The primary use of  environment variables for our purposes  is in
  999.           batch files: Whenever you  enclose a variable name with  two per-
  1000.           cent signs DOS will  replace the name and the percent  signs with
  1001.           the value of the variable.  If there is no variable of  that name
  1002.           the space will be empty. The following are a  few examples of how
  1003.           this could be used in a batch file:
  1004.  
  1005.                  GOTO %test%                        {jump to label "ok"}
  1006.                  ECHO The value of TEST is %test%.  {simple string substi-
  1007.                                                      tution, useful for
  1008.                                                      debugging}
  1009.                  EDIT %test%                        {command parameter}
  1010.                  %test%                             {execute the command or
  1011.                                                      batch file called ok}
  1012.                  IF "%test%" == "ok" GOTO continue  {string comparisons}
  1013.                  IF NOT "%test%" == "" CALL doit.bat
  1014.  
  1015.           The use of  double quotes in the  last two examples  is mandatory
  1016.           for two reasons:(2)
  1017.             - If the variable  does not exist, " IF %test% == "  would lead
  1018.               to a  syntax error  because DOS cannot  handle the  resulting
  1019.  
  1020.  
  1021.  
  1022.           --------------------
  1023.           1 There are certain DOS shells, e.g. Norton Commander, that
  1024.           ignore the SET command, i.e. you cannot change the environment.
  1025.           Just exit the shell and SET should work as indicated.
  1026.           The environment has a pre-defined fixed size, and if you try to
  1027.           define more (or longer) variables than will fit, DOS displays an
  1028.           error message similar to " Out of environment space " and ignores
  1029.           the command. If this happens to you, please refer to your DOS
  1030.           manual (SHELL= command in CONFIG.SYS) or ask an experienced user
  1031.           for help.
  1032.  
  1033.           2 There are other less general ways to get similar results, but
  1034.           the double quotes will work most of the time.
  1035.  
  1036.           BOOT.SYS                     -  20  -                Version 1.42
  1037.  
  1038.  
  1039.  
  1040.               " IF == ".
  1041.             - If the value has embedded spaces, then the  double quotes are
  1042.               needed to keep it together as a single piece of information.
  1043.  
  1044.           Warning: DOS  lets you use  SET with all  kinds of parameters  as
  1045.           long as  there is an  equal sign  somewhere on  the line, and  it
  1046.           literally copies to  the environment whatever  is on the  command
  1047.           line. Many  of these  'variable  definitions' are  not usable  in
  1048.           batch files; the most common error is:
  1049.  
  1050.                  SET test = not_ok
  1051.  
  1052.           Enter SET to see:
  1053.  
  1054.                  COMSPEC=C:\DOS\COMMAND.COM
  1055.                  PATH=c:\dos;c:\util;c:\myapp
  1056.                  TEST=ok
  1057.                  TEST = not_ok
  1058.  
  1059.           The spaces on  both sides of the  equal sign have become  part of
  1060.           the variable  name  and  value. This  is  probably not  what  you
  1061.           intended, and DOS will not recognize " %test % " with an embedded
  1062.           space as a valid variable name.
  1063.  
  1064.           Lastly, you can delete variable definitions as follows:
  1065.  
  1066.                  SET test=
  1067.  
  1068.           This removes the good version of our TEST variable (verify it!).
  1069.  
  1070.           Note: 4DOS,  an  alternative command  processor  by JP  Software,
  1071.           enhances the functionality of  COMMAND.COM and DOS in  general in
  1072.           just about  every way, and  it also  includes much more  powerful
  1073.           environment variable support.
  1074.  
  1075.  
  1076.              Using Environment Variables with BOOT.SYS
  1077.  
  1078.           BOOT.SYS lets you  define a variable  in CONFIG.SYS by  including
  1079.           the following statement  between the BOOT.SYS and  BOOT.END lines
  1080.           (wherever a normal CONFIG.SYS command is legal):
  1081.  
  1082.                  DEVICE=BOOT.SET name=value
  1083.  
  1084.           To define  more  than one  variable  just use  BOOT.SET  multiple
  1085.           times.(1) The  variable definitions  are stored  in the  resident
  1086.           part of BOOT.SYS which will grow accordingly.
  1087.  
  1088.           In AUTOEXEC.BAT (or from the DOS command line) you must execute
  1089.  
  1090.                  BOOT SET
  1091.  
  1092.           --------------------
  1093.           1 You could even set the PROMPT and the PATH with BOOT.SET .
  1094.  
  1095.           BOOT.SYS                     -  21  -                Version 1.42
  1096.  
  1097.  
  1098.  
  1099.           to copy the variable  definitions into the DOS  environment where
  1100.           they can  be used like  any other  environment variables. If  you
  1101.           want, you can free up the environment space  taken by these vari-
  1102.           ables later on with the command(1):
  1103.  
  1104.                  BOOT CLEAR
  1105.  
  1106.           BOOT.SET is modeled closely  after the SET command in DOS  and it
  1107.           accepts just  about anything  as a variable  definition. Not  all
  1108.           such definitions will be usable in DOS.(2)
  1109.  
  1110.           The variable name is always translated to upper  case; by default
  1111.           the value is translated as well, but if you need lower-case char-
  1112.           acters, you can use the /Upper-case switch as follows:(3)
  1113.  
  1114.                  DEVICE=BOOT.SET /U^ name=^Value
  1115.  
  1116.  
  1117.              Trouble-shooting Variable Problems
  1118.  
  1119.           If you are having problems with BOOT.SET :
  1120.  
  1121.             -  Use the DOS-internal  SET command without any  parameters to
  1122.                display the current contents of the environment.
  1123.  
  1124.             -  Try to define the  variables from the DOS command  line with
  1125.                the DOS-internal SET command.
  1126.  
  1127.             -  Keep in mind that extraneous spaces to the left or the right
  1128.                of the equal sign are  stored as part of the name  or value,
  1129.                respectively.
  1130.  
  1131.             -  To make  comparisons  with possibly  empty  strings or  with
  1132.                strings containing  spaces  you must  use  double quotes  as
  1133.                shown in the previous section.
  1134.  
  1135.             -  You may  want to  set default values  for certain  variables
  1136.                with BOOT.0.(4)
  1137.  
  1138.             -  You may need to increase the size of  the DOS environment if
  1139.                you use many and/or long variable definitions; BOOT.SYS will
  1140.                display appropriate directions for your version of DOS.
  1141.  
  1142.  
  1143.           --------------------
  1144.           1 You cannot regain the space used by the resident part of
  1145.           BOOT.SYS, but this is typically very small, i.e. less than 200
  1146.           bytes.
  1147.  
  1148.           2 See the warning in the previous section.
  1149.  
  1150.           3  /U is fully explained in <<BOOT.SYS Command Line Parameters>>.
  1151.  
  1152.           4 BOOT.0 is explained in Example 2.2.
  1153.  
  1154.           BOOT.SYS                     -  22  -                Version 1.42
  1155.  
  1156.  
  1157.  
  1158.           Level 2: Several Independent Menus Following Each Other
  1159.  
  1160.           Example 1.3 showed that there are situations where  you need more
  1161.           than one  menu: whenever  you  have to  make several  independent
  1162.           decisions.
  1163.  
  1164.  
  1165.  
  1166.           Ex 2.1 Choose
  1167.                    -  whether you want a RAM disk, and
  1168.                    -  whether you need ANSI.SYS.
  1169.                  If the user does not press any key within 5 seconds then
  1170.                  take the defaults of RAM disk and no ANSI.SYS.
  1171.  
  1172.  
  1173.                  [SCREEN]                      [SCREEN]
  1174.  
  1175.  
  1176.  
  1177.           CO.21  DEVICE=c:\bin\BOOT.SYS /T5
  1178.  
  1179.                  DEVICE=BOOT.A /D2
  1180.                   DEVICE=TOP  Do you need a RAM disk?
  1181.                  DEVICE=BOOT.1 no
  1182.                  DEVICE=BOOT.2 yes, 64K RAM disk
  1183.                   DEVICE=c:\dos\VDISK.SYS size=64 sector=512 dir=64
  1184.                   DEVICE=BOOT.SET VDISK=D
  1185.  
  1186.                  DEVICE=BOOT.B /D1
  1187.                   DEVICE=TOP  Do you need ANSI.SYS?
  1188.                  DEVICE=BOOT.1 no
  1189.                  DEVICE=BOOT.2 yes, ANSI.SYS
  1190.                   DEVICE=c:\dos\ANSI.SYS
  1191.  
  1192.                  DEVICE=BOOT.Z  {this line is optional, omit it!}
  1193.  
  1194.                  DEVICE=BOOT.END
  1195.  
  1196.  
  1197.  
  1198.           AU.21  c:\bin\BOOT SET
  1199.                  IF ERRORLEVEL 10 GOTO not_installed
  1200.  
  1201.                  IF     "%VDISK%" == ""  ECHO Sorry, there is no RAM disk
  1202.  
  1203.                  IF NOT "%VDISK%" == ""  COPY c:\COMMAND.COM %VDISK%:
  1204.                  IF NOT "%VDISK%" == ""  SET COMSPEC=%VDISK%:\COMMAND.COM
  1205.  
  1206.                  GOTO done
  1207.  
  1208.                  :not_installed
  1209.                  ECHO BOOT.SYS is not installed!
  1210.  
  1211.                  :done
  1212.  
  1213.           BOOT.SYS                     -  23  -                Version 1.42
  1214.  
  1215.  
  1216.  
  1217.                  PATH c:\dos;c:\bin
  1218.  
  1219.  
  1220.  
  1221.           The first menu  is introduced by the  BOOT.A line, the  second by
  1222.           BOOT.B , etc., up to  BOOT.Y , giving you a maximum of  25 menus.
  1223.           The BOOT.Z line is optional and should be omitted here for better
  1224.           error checking; its use will become clear with Example 3.1.
  1225.  
  1226.           The command line parameter  /T sets a timeout value of  5 seconds
  1227.           for all menus. Alternately, command line parameters may be speci-
  1228.           fied on the  BOOT.A , etc., lines, and  apply only to  that menu,
  1229.           such as /D  in this example. Actually  both can be  combined: The
  1230.           parameters on  the BOOT.SYS line  set the  defaults which can  be
  1231.           changed for specific menus.
  1232.  
  1233.  
  1234.  
  1235.           Sometimes the loading  order of different  device drivers may  be
  1236.           important. Thus  it  is possible  that a  device  driver must  be
  1237.           loaded between  two menus. This  can be  done with the  following
  1238.           extension:
  1239.  
  1240.  
  1241.  
  1242.           CO.22  DEVICE=c:\bin\BOOT.SYS /T5
  1243.  
  1244.                  DEVICE=BOOT.A /D2
  1245.                   DEVICE=TOP  Do you need a RAM disk?
  1246.  
  1247.                  DEVICE=BOOT.0
  1248.                   {device drivers}
  1249.  
  1250.                  DEVICE=BOOT.1 no
  1251.                  DEVICE=BOOT.2 yes, 64K RAM disk
  1252.                   DEVICE=c:\dos\VDISK.SYS size=64 sector=512 dir=64
  1253.                   DEVICE=BOOT.SET VDISK=D
  1254.  
  1255.                  DEVICE=BOOT.0
  1256.                   {device drivers}
  1257.  
  1258.                  DEVICE=BOOT.B /D1
  1259.                   DEVICE=TOP  Do you need ANSI.SYS?
  1260.                  DEVICE=BOOT.1 no
  1261.                  DEVICE=BOOT.2 yes, ANSI.SYS
  1262.                   DEVICE=c:\dos\ANSI.SYS
  1263.  
  1264.                  DEVICE=BOOT.END
  1265.  
  1266.           BOOT.SYS                     -  24  -                Version 1.42
  1267.  
  1268.  
  1269.  
  1270.           In each menu  the first option may  be preceeded and/or  the last
  1271.           option followed  by BOOT.0 ;  any device drivers  (or other  com-
  1272.           mands) listed under this 'option' are always loaded/executed when
  1273.           this menu is displayed at all.
  1274.  
  1275.           Note: It is easiest  to picture BOOT.SYS as 'executing'  the com-
  1276.           mands under the  first BOOT.0 , followed by  menu A and  the com-
  1277.           mands under the second BOOT.0 , and finally  'executing' menu B .
  1278.           In fact this is not correct! DOS begins by executing the commands
  1279.           up to and including BOOT.SYS . At this point  BOOT.SYS takes over
  1280.           and processes  all menus  down  to BOOT.END .  Processing a  menu
  1281.           means that  the user  selects one  of the  options, and  BOOT.SYS
  1282.           wipes out the menu definition lines and the  command lines of the
  1283.           other options.  When BOOT.SYS  has processed the  last menu,  DOS
  1284.           comes in again  and executes the  commands that BOOT.SYS has  not
  1285.           wiped out, including the ones after BOOT.END .
  1286.  
  1287.  
  1288.           Level 3: Nested Menus
  1289.  
  1290.           For a sophisticated system  configuration it may be  desirable to
  1291.           have nested menus. This leads to a logical  extension of level 2:
  1292.           within any option you  can embed an entire sequence  of submenus.
  1293.           Example 3.1 may  not be a  very good one,  but 3.2 will show  how
  1294.           this can be used in real life.
  1295.  
  1296.  
  1297.                  [SCREEN]                      [SCREEN]
  1298.  
  1299.                  [SCREEN]                      [SCREEN]
  1300.  
  1301.  
  1302.  
  1303.           CO.31  DEVICE=c:\bin\BOOT.SYS /T5 /P
  1304.  
  1305.                  DEVICE=BOOT.A /D2                  {A}
  1306.                   DEVICE=TOP  Do you need a RAM disk?
  1307.                  DEVICE=BOOT.1 no
  1308.  
  1309.                  DEVICE=BOOT.2 yes, RAM disk
  1310.                   {a}
  1311.                    DEVICE=BOOT.A /T                 {A2A}
  1312.                     DEVICE=TOP  What size RAM disk do you need?
  1313.                    DEVICE=BOOT.1  64K
  1314.                     DEVICE=c:\dos\VDISK.SYS size=64 sector=512 dir=64
  1315.                    DEVICE=BOOT.2 128K
  1316.                     DEVICE=c:\dos\VDISK.SYS size=128 sector=512 dir=64
  1317.                     {b}
  1318.  
  1319.                    DEVICE=BOOT.B                    {A2B}
  1320.                     DEVICE=TOP  Do you want COMMAND.COM to be
  1321.                     DEVICE=TOP  copied to the RAM disk?
  1322.                    DEVICE=BOOT.1 yes
  1323.                     DEVICE=BOOT.SET COPY_CC=Y
  1324.  
  1325.           BOOT.SYS                     -  25  -                Version 1.42
  1326.  
  1327.  
  1328.  
  1329.                    DEVICE=BOOT.2 no
  1330.                     {c}
  1331.                    DEVICE=BOOT.Z
  1332.                   {d}
  1333.  
  1334.                  DEVICE=BOOT.B /D1                  {B}
  1335.                   DEVICE=TOP  Do you need ANSI.SYS?
  1336.                  DEVICE=BOOT.1 no
  1337.                  DEVICE=BOOT.2 yes, ANSI.SYS
  1338.                   DEVICE=c:\dos\ANSI.SYS
  1339.  
  1340.                  DEVICE=BOOT.END
  1341.  
  1342.  
  1343.  
  1344.           AU.31  c:\bin\BOOT SET
  1345.                  IF ERRORLEVEL 10 GOTO not_installed
  1346.  
  1347.                  IF "%COPY_CC%" == "Y"  COPY c:\COMMAND.COM d:
  1348.                  IF "%COPY_CC%" == "Y"  SET COMSPEC=d:\COMMAND.COM
  1349.  
  1350.                  c:\bin\BOOT CLEAR      {remove the variable definition}
  1351.  
  1352.                  GOTO done
  1353.  
  1354.                  :not_installed
  1355.                  ECHO BOOT.SYS is not installed!
  1356.  
  1357.                  :done
  1358.                  PATH c:\dos;c:\bin
  1359.  
  1360.  
  1361.  
  1362.           The command line  switch /P ( /Path)  enables the display of  the
  1363.           menu identifiers in  the lower right  corner of each menu.  These
  1364.           are the same strings that are shown as comments in the CONFIG.SYS
  1365.           listing above.(1)  /P is  useful for support  and debugging  pur-
  1366.           poses. Calling  BOOT.COM from  the DOS command  line without  any
  1367.           parameters  will display  a  list  of  all the  menus  that  were
  1368.           displayed and the corresponding choices.
  1369.  
  1370.  
  1371.  
  1372.  
  1373.  
  1374.           --------------------
  1375.           1 The menu identifier describes how you got to the current menu:
  1376.           e.g. 'A2B' means
  1377.             - you have chosen option 2 on the first first-level menu ('A')
  1378.             - this option has at least two submenus, and you have already
  1379.               made your choice on the first submenu (the 'A2A' menu)
  1380.             - you are now looking at the second submenu ('A2B').
  1381.           A level number is displayed along with the menu identifier ('A'
  1382.           is a level-1 menu, 'A2A' and 'A2B' are at level 2).
  1383.  
  1384.           BOOT.SYS                     -  26  -                Version 1.42
  1385.  
  1386.  
  1387.  
  1388.           If the  user selects  option 1  (no RAM  disk) in  menu {A}  then
  1389.           everything  will be  as  in  example  2.1;  but if  option  2  is
  1390.           selected, a submenu(1) to  specify the size of the RAM  disk will
  1391.           be presented as well  as another submenu to specify  whether COM-
  1392.           MAND.COM should be copied to the RAM disk.
  1393.  
  1394.           Let us  now  examine  more closely  what  happens when  the  user
  1395.           selects option 2 (keeping in mind what was said at the end of the
  1396.           Level 2 chapter):
  1397.  
  1398.           First, any commands at {a} are executed. Then  menu {A2A} is dis-
  1399.           played with no timeout, so the user must  make a selection before
  1400.           the execution continues. At {b} there could be  a BOOT.0 line and
  1401.           the  associated commands  would  be  executed whenever  the  user
  1402.           selects option 2 in  menu {A}. Then  menu {A2B} is processed  and
  1403.           depending on the choice the variable is set or  not. At {c} again
  1404.           there could be a BOOT.0 line (like {b}).  Any further commands at
  1405.           {d} are  executed (like  {a}), and  finally processing  continues
  1406.           with menu {B}.
  1407.  
  1408.           The role  of  the  BOOT.Z line  should  now become  clear:  every
  1409.           sequence of menus (starting with BOOT.A , BOOT.B ,  etc.) is ter-
  1410.           minated with a BOOT.Z . For the top level menu sequence BOOT.Z is
  1411.           not required because BOOT.END  takes its place, and  BOOT.SYS can
  1412.           do better checking of nesting errors if you omit BOOT.Z .
  1413.  
  1414.           In AUTOEXEC.BAT the variable is copied to the  environment (if it
  1415.           is defined at all) and then erased when it is no longer used.
  1416.  
  1417.           Theoretically  there  is no  limit  to  the  nesting  level,  but
  1418.           BOOT.SYS cannot  display more  than 25  menus, so  you cannot  go
  1419.           deeper than 25.
  1420.  
  1421.           Although BOOT.SYS cannot display more than 25 menus per run (most
  1422.           users probably would not  put up with more than 5  menus anyway),
  1423.           the number of  menus in the entire  menu tree may be  much larger
  1424.           than that.  DOS enforces  some upper  limit on the  size of  CON-
  1425.           FIG.SYS though, probably 64K bytes.
  1426.  
  1427.  
  1428.  
  1429.  
  1430.           The final  example  shows a  more    [SCREEN]
  1431.           involved setup. I used to present
  1432.           my personal  setup  here, but  it
  1433.           has become too complex by now...
  1434.  
  1435.  
  1436.           --------------------
  1437.           1 The contents of option 2 are indented to illustrate the submenu
  1438.           relationship.
  1439.           Note: If your editor replaces series of spaces with tabs, then
  1440.           columns may not align properly on the screen, especially if you
  1441.           use indentation.
  1442.  
  1443.           BOOT.SYS                     -  27  -                Version 1.42
  1444.  
  1445.  
  1446.  
  1447.                  [SCREEN]                      [SCREEN]
  1448.  
  1449.  
  1450.  
  1451.           CO.32  break=off
  1452.                  buffers=32
  1453.                  country=041,437,c:\dos\country.sys
  1454.                  files=20
  1455.                  lastdrive=H
  1456.                  stacks=9,128
  1457.                  shell=c:\dos\command.com c:\dos /p /e:300
  1458.  
  1459.                  DEVICE=C:\BOOT\BOOT.SYS /L18 /U^\ /CX2F
  1460.  
  1461.                  DEVICE=BOOT.A /T0 /CX4F /D1
  1462.                   DEVICE=TOP
  1463.                   DEVICE=TOP
  1464.                   DEVICE=TOP       ^Select any special boot-up options:
  1465.                   DEVICE=TOP
  1466.                  DEVICE=BOOT.1 >>> \NONE <<<
  1467.                  DEVICE=BOOT.2 \UNIFORM\  -  ^Access non-\DOS\ diskettes
  1468.                   device=c:\ut\uniform\uniform.sys at+ dr96=0
  1469.                  DEVICE=BOOT.3 ansi.sys
  1470.                   device=c:\dos\ansi.sys
  1471.                  DEVICE=BOOT.4 ^Insert an additional device driver
  1472.                   DEVICE=BOOT.EDIT                 {see the next section}
  1473.                   DEVICE=DUMMY FILLER DUMMY FILLER DUMMY FILLER
  1474.                  DEVICE=BOOT.5 ^Alt-^Ctrl-^Del = cold boot
  1475.                   DEVICE=BOOT.OPTION BOOTASSIST    {see the next section}
  1476.                   DEVICE=BOOT.SET BOOTASSIST=COLD
  1477.  
  1478.                  DEVICE=BOOT.B /T5
  1479.                   DEVICE=TOP
  1480.                   DEVICE=TOP
  1481.                   DEVICE=TOP       ^Select operating environment:
  1482.                   DEVICE=TOP
  1483.  
  1484.                  DEVICE=BOOT.0
  1485.                   DEVICE=BOOT.SET CED=Y            {default}
  1486.  
  1487.                  DEVICE=BOOT.1 \DOS\ with 1^M^B disk cache
  1488.                   DEVICE=BOOT.SET C386=MAX
  1489.                   device=c:\386max\386max.sys ext=1384
  1490.                   device=c:\386max\386load.sys prog=c:\dos\cache.exe 1024
  1491.                                    ON /EXT /Q
  1492.                   buffers=5
  1493.                   device=c:\386max\386load.sys size=4216
  1494.                                    prog=c:\dos\vdisk.sys 360 512 64 /E:8
  1495.  
  1496.                  DEVICE=BOOT.2 \DOS\ without disk cache
  1497.                   DEVICE=BOOT.SET C386=MAX
  1498.                   device=c:\386max\386max.sys ext=360
  1499.                   device=c:\386max\386load.sys size=4216
  1500.                                    prog=c:\dos\vdisk.sys 360 512 64 /E:8
  1501.  
  1502.           BOOT.SYS                     -  28  -                Version 1.42
  1503.  
  1504.  
  1505.  
  1506.                  DEVICE=BOOT.3 \DESQ\view 386
  1507.                   DEVICE=BOOT.SET C386=QEMM
  1508.                   DEVICE=BOOT.SET DV=Y
  1509.                   DEVICE=BOOT.SET CED=             {erase default variable}
  1510.                   DOS=LOW                          {MS/PC-DOS 5.00 only}
  1511.  
  1512.                    DEVICE=BOOT.A /T5 /D2
  1513.                     DEVICE=TOP
  1514.                     DEVICE=TOP
  1515.                     DEVICE=TOP    ^Select \DESQ\view configuration:
  1516.                     DEVICE=TOP    (size of 1st window, others 12k^B less)
  1517.                     DEVICE=TOP
  1518.  
  1519.                    DEVICE=BOOT.1 ^Standard: 535^K^B free
  1520.                     device=c:\dv\qemm\qemm386.sys extmem=360
  1521.                     device=c:\dos\vdisk.sys 360 512 64 /E:8
  1522.  
  1523.                    DEVICE=BOOT.2 ^Extended: 546^K^B free
  1524.                     device=c:\dv\qemm\qemm386.sys extmem=360 ram rom
  1525.                     device=c:\dos\vdisk.sys 360 512 64 /E:8
  1526.  
  1527.                    DEVICE=BOOT.3 ^Huge: 639^K^B free (no graphics!)
  1528.                     DEVICE=BOOT.SET NOEGA=Y
  1529.                     DEVICE=REM  use LOADHI NOEGA
  1530.                     device=c:\dv\qemm\qemm386.sys extmem=360 ram rom
  1531.                                                   include=A000-B7FF
  1532.                     device=c:\dos\vdisk.sys 360 512 64 /E:8
  1533.  
  1534.                    DEVICE=BOOT.Z
  1535.  
  1536.                  DEVICE=BOOT.4 ^Windows 386
  1537.                   DEVICE=BOOT.SET C386=HIMEM
  1538.                   device=c:\dos\himem.sys
  1539.                   device=c:\dos\smartdrv.sys 1024
  1540.                   device=c:\dos\vdisk.sys 360 512 64 /E:8
  1541.                   DEVICE=BOOT.SET CED=             {erase default variable}
  1542.  
  1543.                  DEVICE=BOOT.5 ^Turbo ^Debugger 386 and ^M^S-^D^O^S
  1544.                   DEVICE=BOOT.SET C386=TD
  1545.                   device=c:\tc\td\tdh386.sys
  1546.  
  1547.                  DEVICE=BOOT.6 plain ^D^O^S
  1548.                   device=boot.option free          {see the next section}
  1549.                   DEVICE=REM  Note: BOOT.COM will return ERRORLEVEL 10
  1550.  
  1551.                  DEVICE=BOOT.END
  1552.                  DOS=HIGH                          {MS/PC-DOS 5.00 only}
  1553.  
  1554.           BOOT.SYS                     -  29  -                Version 1.42
  1555.  
  1556.  
  1557.  
  1558.           AU.32  path c:\dos;c:\bin;c:\ut;c:\wp\lm
  1559.  
  1560.                  C:\BOOT\BOOT SET >NUL:
  1561.                  if errorlevel 10  goto plain_dos
  1562.  
  1563.                  if not "%bootassist%" == ""  C:\BOOT\BOOT BOOTASSIST
  1564.                                                    %BOOTASSIST% >nul:
  1565.                  set bootassist=               {don't need this anymore}
  1566.  
  1567.                  quikkey 24
  1568.  
  1569.                  if "%c386%" == "MAX"   goto max
  1570.                  if "%c386%" == "QEMM"  goto qemm
  1571.  
  1572.                  c:\dos\plus\kbext
  1573.                  if "%ced%" == "Y"  c:\ut\ced -b500,200,300,128,128,128
  1574.                                               -fc:\ut\ced.cfg
  1575.                  goto cont
  1576.  
  1577.                  :max
  1578.                  c:\386max\386load size=1052 envname prog=c:\dos\plus\kbext
  1579.                  if "%ced%" == "Y"   c:\386max\386load size=9892 envname
  1580.                                      prog=c:\ut\ced
  1581.                                      -b500,200,300,128,128,128
  1582.                                      -fc:\ut\ced.cfg
  1583.                  goto cont
  1584.  
  1585.                  :qemm
  1586.                  if "%noega%" == "Y"  c:\dv\qemm\loadhi c:\dv\qemm\noega
  1587.                  set noega=                    {don't need this anymore}
  1588.                  c:\dv\qemm\loadhi c:\dos\plus\kbext
  1589.                  if "%ced%" == "Y" c:\dv\qemm\loadhi c:\ut\ced
  1590.                                    -b500,200,300,128,128,128
  1591.                                    -fc:\ut\ced.cfg
  1592.                  goto cont
  1593.  
  1594.                  :cont
  1595.                  if "%WIN%" == "Y"  cd c:\win
  1596.                  if "%WIN%" == "Y"  win
  1597.                  if "%DV%"  == "Y"  cd c:\dv
  1598.                  if "%DV%"  == "Y"  dv
  1599.  
  1600.                  :plain_dos
  1601.  
  1602.  
  1603.  
  1604.           The first menu is for 'special needs': it has a  timeout of 0 and
  1605.           defaults to an empty option. To use non-DOS diskettes or ANSI.SYS
  1606.           just press a key  (e.g. the space bar) immediately after  the two
  1607.           beeps at boot-up. This  displays the 'special needs'  menu, which
  1608.           appears in red to distinguish it from the normal green menus. You
  1609.           also might  put in  here device  drivers for  your scanner,  your
  1610.           CD-ROM drive,  or any  other  devices that  you do  not use  fre-
  1611.           quently.
  1612.  
  1613.           BOOT.SYS                     -  30  -                Version 1.42
  1614.  
  1615.  
  1616.  
  1617.           The BOOT.EDIT and BOOT.OPTION lines will be explained in the next
  1618.           section.
  1619.  
  1620.           The second menu (which is usually the first to be displayed) lets
  1621.           you select the operating environment to use:
  1622.  
  1623.             - MS-DOS with disk cache
  1624.             - MS-DOS without disk cache (more EMS memory)
  1625.             - DESQview 386
  1626.             - Windows
  1627.             - Turbo Debugger with 386 support
  1628.  
  1629.           Depending on which operating environment is selected, one of four
  1630.           mutually exclusive 386 control programs are used, and all of them
  1631.           have to  be loaded  from CONFIG.SYS; without  BOOT.SYS you  would
  1632.           need at least 4 different versions of CONFIG.SYS. Some of the 386
  1633.           control programs  support loading other  device drivers and  TSRs
  1634.           into  'high  DOS memory'  above  the  640K,  so  AUTOEXEC.BAT  is
  1635.           affected as well.  This menu could also  be used to  select other
  1636.           command processors like 4DOS, *nix-like shells, or other replace-
  1637.           ments for COMMAND.COM.
  1638.  
  1639.           The DESQview option has a submenu to choose between three differ-
  1640.           ent QEMM386 setups; each option gives different amounts of memory
  1641.           available, along with  other advantages and  disadvantages (e.g.,
  1642.           an additional 96K bytes of memory can be  made available for each
  1643.           window if you do not want to use any graphics programs).
  1644.  
  1645.           The sample AUTOEXEC.BAT demonstrates nicely how unrelated aspects
  1646.           of your  system configuration can  be defined  in a modular  way,
  1647.           e.g. while this CONFIG.SYS  always runs Windows with  HIMEM, that
  1648.           is not reflected  in AUTOEXEC.BAT; if  you wish to start  running
  1649.           Windows under QEMM you only need to change CONFIG.SYS.
  1650.  
  1651.  
  1652.           Controlling the DOS= Command in MS/PC-DOS 5.00
  1653.  
  1654.              General Introduction
  1655.  
  1656.           MS/PC-DOS 5.00 has introduced a new command to CONFIG.SYS:
  1657.  
  1658.                  DOS=HIGH|LOW,UMB|NOUMB
  1659.  
  1660.           The DOS= command defines two unrelated properties  of your system
  1661.           configuration that are discussed separately:(1)
  1662.  
  1663.  
  1664.  
  1665.  
  1666.  
  1667.  
  1668.           --------------------
  1669.           1 Please refer to the MS-DOS Reference for more information on
  1670.           DOS= .
  1671.  
  1672.           BOOT.SYS                     -  31  -                Version 1.42
  1673.  
  1674.  
  1675.  
  1676.               ->  DOS=HIGH|LOW
  1677.  
  1678.           MS/PC-DOS 5.00 has  the ability to load  most of itself  into the
  1679.           so-called High Memory Area (HMA).(1) The DOS default is DOS=LOW ,
  1680.           i.e. not use the  HMA, but usually you  will want DOS to  go high
  1681.           and give you additional conventional memory in the first 640K.
  1682.  
  1683.           However, there are circumstances when DOS=LOW might be better:
  1684.             - Some programs are incompatible with DOS=HIGH , e.g. some ver-
  1685.               sions of Borland's Turbo Debugger 386.
  1686.             - Some programs can make better use of the HMA than DOS and you
  1687.               gain more by  letting them use the  HMA instead of  DOS, e.g.
  1688.               DESQview-386.
  1689.  
  1690.           BOOT.SYS lets you have  HIGH and LOW configuration side  by side,
  1691.           but some special care is needed as explained below.
  1692.  
  1693.               ->  DOS=UMB|NOUMB
  1694.  
  1695.           MS/PC-DOS 5.00 supports loading device drivers  and resident pro-
  1696.           grams (TSRs)  into the so-called  Upper Memory Blocks  (UMBs).(2)
  1697.           386MAX and QEMM386 have had this capability for  a long time, and
  1698.           they provide  their own  utilities for loading  high; by  default
  1699.           ( DOS=NOUMB ) DOS does not interfere.
  1700.  
  1701.           On the other hand, DOS=UMB instructs DOS to  allocate the UMBs as
  1702.           soon as they become available and to integrate  them into its own
  1703.           memory management.(3) This has two consequences:
  1704.             - You can  use the  DEVICEHIGH and LOADHIGH  commands that  are
  1705.               built into DOS (however these are not as  powerful and versa-
  1706.               tile as the ones included with 386MAX or QEMM386).
  1707.             - DOS  can  make  free   UMBs  available  for  use   by  normal
  1708.               application programs (not  just device drivers and  TSRs). At
  1709.               present 386MAX and QEMM386 do not support this.
  1710.  
  1711.  
  1712.  
  1713.           --------------------
  1714.           1 The HMA is the first 64K-16 bytes of extended memory (80286
  1715.           processor and up), and it is defined in the so-called eXtended
  1716.           Memory Specification (XMS). Every memory manager that adheres to
  1717.           the XMS standard provides the HMA, e.g. HIMEM.SYS, 386MAX, and
  1718.           QEMM386.
  1719.  
  1720.           2 UMBs are regions in the address range between 640K and 1M on
  1721.           computers equipped with an 80386 processor or higher, that are
  1722.           not used for any other purpose. A suitable memory manager (a
  1723.           so-called UMB provider, e.g. 386MAX, QEMM386, or HIMEM and EMM386
  1724.           as included with MS/PC-DOS 5.00) can map extended memory into
  1725.           these regions and make them usable for device drivers and resi-
  1726.           dent programs.
  1727.  
  1728.           3 DOS=UMB is the only way to go if you use HIMEM.SYS and
  1729.           EMM386.EXE that are provided with MS/PC-DOS 5.00.
  1730.  
  1731.           BOOT.SYS                     -  32  -                Version 1.42
  1732.  
  1733.  
  1734.  
  1735.           Some time  in the  future  the third-party  memory managers  will
  1736.           probably support the DOS memory management and  DOS=UMB will work
  1737.           for everything,  but until then  BOOT.SYS lets  you have UMB  and
  1738.           NOUMB configurations side by side.
  1739.  
  1740.  
  1741.              BOOT.SYS and the DOS= Command
  1742.  
  1743.           The  DOS=  command creates some  intricate problems for  BOOT.SYS
  1744.           because it  is prescanned, i.e.  DOS looks throughout  CONFIG.SYS
  1745.           for DOS= commands and sets itself up  accordingly before BOOT.SYS
  1746.           receives control.  BOOT.SYS still  manages to  give you  complete
  1747.           freedom  in  your  configurations,  but  some   special  care  is
  1748.           required.
  1749.  
  1750.           During the DOS prescan for DOS= , the last instance of HIGH / LOW
  1751.           and UMB / NOUMB , respectively,  is recorded for  use by DOS,  no
  1752.           matter where the DOS= line(s) is/are located.  These settings are
  1753.           used for  loading the  device  drivers above  BOOT.SYS(1) and  as
  1754.           defaults for  those BOOT.SYS configurations  that do not  specify
  1755.           anything else. To let BOOT.SYS control HIGH / LOW , DOS=HIGH must
  1756.           be active! We recommend that you put DOS=HIGH below BOOT.END .(2)
  1757.  
  1758.           When you select a  certain configuration, BOOT.SYS wipes  out all
  1759.           the commands  that are  not part of  the selected  configuration;
  1760.           then it scans the  remaining lines between BOOT.SYS  and BOOT.END
  1761.           for DOS= commands. Just like DOS, BOOT.SYS uses the last instance
  1762.           of each of the two properties and the boot process continues with
  1763.           these new settings.
  1764.  
  1765.           It may  be helpful  to record  the DOS=  settings in  environment
  1766.           variables for later use in AUTOEXEC.BAT and  possibly other batch
  1767.           files.
  1768.  
  1769.  
  1770.              DOS=  Summary
  1771.  
  1772.           To control the DOS= command use the following procedure:
  1773.  
  1774.             1. Put the line
  1775.  
  1776.                  DOS=HIGH,NOUMB
  1777.  
  1778.  
  1779.  
  1780.  
  1781.           --------------------
  1782.           1 I.e. if DOS=HIGH is set, and an XMS driver is loaded ahead of
  1783.           BOOT.SYS and the XMS driver provides the HMA (high memory area),
  1784.           then DOS will take the HMA and load high immediately; likewise,
  1785.           if DOS=UMB is active and some upper memory blocks become avail-
  1786.           able, then DOS will take them immediately.
  1787.  
  1788.           2 ... and of course no DOS=LOW below it.
  1789.  
  1790.           BOOT.SYS                     -  33  -                Version 1.42
  1791.  
  1792.  
  1793.  
  1794.                at the  bottom of  CONFIG.SYS (below BOOT.END )  to set  the
  1795.                defaults to HIGH and NOUMB .(1)
  1796.  
  1797.             2. In the configurations that need UMB , insert:
  1798.  
  1799.                  DOS=UMB
  1800.                  DEVICE=BOOT.SET UMB=Y              {optional}
  1801.  
  1802.             3. In the configurations that need LOW , insert:
  1803.  
  1804.                  DOS=LOW
  1805.                  DEVICE=BOOT.SET LOW=Y              {optional}
  1806.  
  1807.                Technically, when you  specify DOS=LOW , BOOT.SYS  allocates
  1808.                the HMA and DOS  is forced low, just  as if the HMA  was not
  1809.                available at  all.  The HMA  is  automatically released  the
  1810.                first time you call BOOT.COM.
  1811.  
  1812.                If you are using HIMEM.SYS, there is one caveat: The version
  1813.                of HIMEM.SYS that comes with MS/PC-DOS 5.00  has the ability
  1814.                to load itself into the HMA if DOS=HIGH is specified, but it
  1815.                grows considerably when DOS is forced low by BOOT.SYS.(2) To
  1816.                avoid wasting precious RAM, either use one of  the more ver-
  1817.                satile third-party  386  control programs  (e.g. QEMM386  or
  1818.                386MAX) instead of HIMEM.SYS  or use a different  version of
  1819.                HIMEM.SYS (e.g.  the one that  comes with Microsoft  Windows
  1820.                3.0) for the 'low' configurations.
  1821.  
  1822.  
  1823.           BOOT.SYS Extensions
  1824.  
  1825.           This chapter explains extensions  to BOOT.SYS that go  beyond the
  1826.           menu system.
  1827.  
  1828.              BOOT.EDIT
  1829.  
  1830.           You can  edit individual  lines on  the fly while  booting up  by
  1831.           including the following lines in CONFIG.SYS (between the BOOT.SYS
  1832.           and BOOT.END lines):
  1833.  
  1834.  
  1835.                  DEVICE=BOOT.EDIT
  1836.                  {any standard CONFIG.SYS command}
  1837.  
  1838.  
  1839.  
  1840.  
  1841.           --------------------
  1842.           1 HIGH is required by BOOT.SYS, and NOUMB is recommended because
  1843.           it is the standard DOS default, i.e. if you specify neither UMB
  1844.           nor NOUMB you should get NOUMB .
  1845.  
  1846.           2 Use MEM /C to get information about the sizes of your resident
  1847.           programs and device drivers.
  1848.  
  1849.           BOOT.SYS                     -  34  -                Version 1.42
  1850.  
  1851.  
  1852.  
  1853.                                                [SCREEN]
  1854.           When  the  menu  option  containing
  1855.           these lines  is selected,  BOOT.SYS
  1856.           displays a screen  with a box  that
  1857.           lets you edit the text to the right
  1858.           of the equal  sign. The keyword  to
  1859.           the   left  of   the   equal   sign
  1860.           ( DEVICE ,  FILES , etc.)  and  the
  1861.           equal sign are required  and cannot
  1862.           be edited.
  1863.  
  1864.           All the  usual  editing keys  are supported;  a  summary will  be
  1865.           displayed on the screen. There is one restriction:  the length of
  1866.           the line cannot be increased!(1)
  1867.  
  1868.           When you press <Enter>,  your edits are saved and  execution con-
  1869.           tinues. To ignore this line and continue, press <Esc> instead.
  1870.  
  1871.           You may put some explanatory text to the right  of BOOT.EDIT  and
  1872.           BOOT.SYS will display your  text instead of the  standard message
  1873.           explaining the edit keys. If you need more than  one line you can
  1874.           use as many BOOT.EDIT lines  as you like - it works  exactly like
  1875.           DEVICE=TOP . Example:
  1876.  
  1877.  
  1878.                  DEVICE=BOOT.EDIT   You may experiment with different
  1879.                  DEVICE=BOOT.EDIT   BUFFERS=n values (<Esc> = ignore):
  1880.                  BUFFERS=020
  1881.  
  1882.  
  1883.  
  1884.  
  1885.              BOOT.OPTION FREE
  1886.  
  1887.           If the line
  1888.  
  1889.  
  1890.                  DEVICE=BOOT.OPTION FREE
  1891.  
  1892.  
  1893.  
  1894.           --------------------
  1895.           1 There are several ways to get around this limitation:
  1896.             - Insert spaces into the line, e.g. between the name of the
  1897.               device driver and the parameters (DOS discards any spaces to
  1898.               the left or immediately to the right of the equal sign, and
  1899.               most text editors do not save spaces at the end of the line).
  1900.             - Insert dummy text that you can erase while editing the line.
  1901.             - Insert normal spaces at the end of the line followed by a
  1902.               single 'hard space'; this is the character with the ASCII
  1903.               value 255, and it can usually be entered by holding down the
  1904.               Alt key, entering 255 on the numeric keypad, and releasing
  1905.               the Alt key.
  1906.           Some of these work-arounds may not work with all versions of DOS.
  1907.  
  1908.           BOOT.SYS                     -  35  -                Version 1.42
  1909.  
  1910.  
  1911.  
  1912.           is part of at least one of the options  you select, then BOOT.SYS
  1913.           will not  stay  resident as  a device  driver.(1)  This lets  you
  1914.           create a bare-bones DOS option for checking out TSR conflicts and
  1915.           the like. The  resident size of  BOOT.SYS is so small  (typically
  1916.           less than 200 bytes) that FREE is not worth it in regular use.
  1917.  
  1918.           If BOOT.SYS does  not stay resident,  the variables you may  have
  1919.           set in CONFIG.SYS are lost  and BOOT.COM has no way to  copy them
  1920.           to the environment -  it cannot even tell that BOOT.SYS  has done
  1921.           its work! In  that case it  displays an error message  indicating
  1922.           that BOOT.SYS is not loaded and returns an ERRORLEVEL code of 10,
  1923.           which you can use to avoid loading TSRs in AUTOEXEC.BAT.
  1924.  
  1925.           An example of this  option is part of the last  sample configura-
  1926.           tion above.
  1927.  
  1928.  
  1929.              BOOT.OPTION BOOTASSIST
  1930.  
  1931.           There exist system configurations and software packages that make
  1932.           your system crash when you hit the  Alt-Ctrl-Del key combination.
  1933.           BOOTASSIST lets you modify  the behavior of Alt-Ctrl-Del,  and it
  1934.           may  be of  help  in your  particular  situation.  To set  it  up
  1935.           requires two steps; the first is to include the line
  1936.  
  1937.  
  1938.                  DEVICE=BOOT.OPTION BOOTASSIST
  1939.  
  1940.  
  1941.           somewhere between BOOT.SYS  and BOOT.END.(2) Executing  this line
  1942.           slightly increases  the resident  size of BOOT.SYS  but does  not
  1943.           change anything else. The  second step is to  activate BOOTASSIST
  1944.           by executing one of the following commands from the DOS prompt or
  1945.           in a batch file (possibly AUTOEXEC.BAT):
  1946.  
  1947.  
  1948.                  BOOT BOOTASSIST WARM
  1949.  
  1950.                  BOOT BOOTASSIST COLD
  1951.  
  1952.                  BOOT BOOTASSIST INHIBIT
  1953.  
  1954.  
  1955.  
  1956.  
  1957.  
  1958.  
  1959.           --------------------
  1960.           1 There may be versions of DOS with which this does not work. Any
  1961.           reports are appreciated!
  1962.  
  1963.           2 You can put it wherever a normal CONFIG.SYS command is accept-
  1964.           able, either as part of an option, or between BOOT.Z and BOOT.END
  1965.           to have it available all the time.
  1966.  
  1967.           BOOT.SYS                     -  36  -                Version 1.42
  1968.  
  1969.  
  1970.  
  1971.           Each of these  commands does to  Alt-Ctrl-Del what its  parameter
  1972.           implies: WARM  is  just the  normal boot  process,  COLD is  like
  1973.           turning the power off and back on, and INHIBIT disables Alt-Ctrl-
  1974.           Del. If you are  having problems with Alt-Ctrl-Del, one  of these
  1975.           command may help, but there's no guarantee! Your chances are best
  1976.           if you load all  your resident utilities before  activating BOOT-
  1977.           ASSIST.(1)
  1978.  
  1979.           The remainder of this  section is a technical explanation  of how
  1980.           BOOTASSIST works. The resident part is a keyboard interrupt (09h)
  1981.           handler, which is  inserted at the head  of the handler  chain by
  1982.           one of the commands above.(2) Being the first in the chain it can
  1983.           usually perform  the required action  which may  or may not  work
  1984.           with your  setup. If you  want to  load another resident  utility
  1985.           program that hooks up  to the same interrupt, you can  unhook the
  1986.           BOOTASSIST handler by issuing the command
  1987.  
  1988.  
  1989.                  BOOT BOOTASSIST OFF
  1990.  
  1991.  
  1992.           and put it back at  the head of the chain after loading  the TSR.
  1993.           If the INT 09h vector  does not point to the  BOOTASSIST handler,
  1994.           it cannot be unhooked anymore and you get  an error message indi-
  1995.           cating that another program has grabbed the vector, including the
  1996.           new address.
  1997.  
  1998.           If BOOTASSIST does not work properly and turning  it OFF does not
  1999.           generate an error message, then BOOTASSIST cannot solve your par-
  2000.           ticular configuration problem.
  2001.  
  2002.  
  2003.              BOOT.OPTION EXTMON for Laptops
  2004.  
  2005.           When you  use BOOT.SYS  with a  laptop computer and  you have  an
  2006.           external monitor attached, then BOOT.SYS will usually  come up on
  2007.           the internal  monitor. This  is  a minor  inconvenience which  is
  2008.           addressed by  EXTMON: EXTMON  switches to  the external  monitor.
  2009.           However, because there are  no standards for this  function among
  2010.           the different laptop manufacturers (and sometimes not even within
  2011.           a product  line), it has  to be  implemented separately for  each
  2012.           system.
  2013.  
  2014.  
  2015.  
  2016.  
  2017.  
  2018.           --------------------
  2019.           1 If you use one of the KEYBxx keyboard drivers to get a non-U.S.
  2020.           keyboard layout (national language support), you must activate
  2021.           BOOTASSIST after KEYBxx.
  2022.  
  2023.           2 Warning: SideKick insists on being the first in the chain and
  2024.           thus defeats this scheme.
  2025.  
  2026.           BOOT.SYS                     -  37  -                Version 1.42
  2027.  
  2028.  
  2029.  
  2030.           At the  time of this  writing support  is implemented for  Compaq
  2031.           portable and laptop  computers only. Support for  other computers
  2032.           may be added in the future if there is  interest and the relevant
  2033.           information is available.
  2034.  
  2035.           The syntax for EXTMON is
  2036.  
  2037.  
  2038.                  DEVICE=BOOT.OPTION EXTMON <type>
  2039.  
  2040.  
  2041.           where <type> is machine-specific  and can be taken from  the fol-
  2042.           lowing table:
  2043.  
  2044.  
  2045.                Manufacturer  <type>   Computer Models
  2046.                Compaq        COMPAQ   all Compaq portables and laptops
  2047.                all           COLOR    standard color screen (mode 3)
  2048.                all           MONO     standard monochrome screen (mode
  2049.                                       7)
  2050.  
  2051.  
  2052.           There are  two ways of  handling EXTMON,  depending on how  smart
  2053.           your computer is: If it is smart, it will not try to switch to an
  2054.           external monitor when there is none. In that case you can use the
  2055.           following lines in CONFIG.SYS,  which will make BOOT.SYS  use the
  2056.           right monitor everytime:
  2057.  
  2058.  
  2059.                  DEVICE=c:\bin\BOOT.SYS
  2060.                  DEVICE=BOOT.A                      {optional}
  2061.                  DEVICE=TOP  ...
  2062.                  DEVICE=BOOT.0
  2063.                  DEVICE=BOOT.OPTION EXTMON <type>   {<type> as above}
  2064.                  DEVICE=BOOT.1 ...
  2065.                    ...
  2066.                  DEVICE=BOOT.END
  2067.  
  2068.  
  2069.           If your  computer  cannot tell  whether  an external  monitor  is
  2070.           attached or not, you must use a different setup:
  2071.  
  2072.  
  2073.                  DEVICE=c:\bin\BOOT.SYS
  2074.                  DEVICE=BOOT.A /D1 /T10
  2075.                  DEVICE=TOP  Which monitor do you want to use?
  2076.                  DEVICE=BOOT.1 Internal
  2077.                  DEVICE=BOOT.2 External
  2078.                  DEVICE=BOOT.OPTION EXTMON <type>   {<type> as above}
  2079.  
  2080.           BOOT.SYS                     -  38  -                Version 1.42
  2081.  
  2082.  
  2083.  
  2084.                  DEVICE=BOOT.B
  2085.                  DEVICE=TOP  ...                    {this is your menu}
  2086.                  DEVICE=BOOT.1 ...
  2087.                    ...
  2088.                  DEVICE=BOOT.END
  2089.  
  2090.  
  2091.           This will display an additional menu at the  very beginning where
  2092.           you can select the monitor to use. After a /Timeout of 10 seconds
  2093.           BOOT.SYS will select the /Default 1, the  internal screen. Press-
  2094.           ing the  '2' key within  that  time causes  it to  switch to  the
  2095.           external monitor for the next menu. This can be done even without
  2096.           seeing the menu A, and  menu B will be displayed right  where you
  2097.           want to see it.
  2098.  
  2099.           Warning: We strongly advise you to use a bootable diskette to try
  2100.           out the EXTMON  function! If the  switch does not work  properly,
  2101.           your internal screen  may go blank, and  you will have no  way of
  2102.           editing the CONFIG.SYS file on the disk you used to boot up!
  2103.  
  2104.  
  2105.              BOOT.OPTION COLOR
  2106.  
  2107.           Some people prefer  more colorful screens  to the white on  black
  2108.           used by  DOS. This option  lets you specify  any color (with  the
  2109.           same numbers as for the /C switch on  the BOOT.SYS command line),
  2110.           which will be used  immediately after the BOOT.SYS  menu.(1) How-
  2111.           ever, some  device drivers  use their  own colors,  and there  is
  2112.           nothing that BOOT.SYS could do to change that. Example:
  2113.  
  2114.  
  2115.                  DEVICE=BOOT.OPTION COLOR X1F       {bright white on blue}
  2116.  
  2117.  
  2118.           BOOT.COM Command Line Parameters
  2119.  
  2120.           The syntax of BOOT.COM is
  2121.  
  2122.                  BOOT <parm>
  2123.  
  2124.           where <parm> is one of the following:
  2125.  
  2126.           SET
  2127.               Copy the  BOOT.SYS variables defined  in CONFIG.SYS into  the
  2128.               DOS environment and display them.
  2129.  
  2130.           --------------------
  2131.           1 A value of 0 can be used to change the color to black on black,
  2132.           effectively hiding the messages generated from CONFIG.SYS.
  2133.           Executing CLS from AUTOEXEC.BAT or from the command line restores
  2134.           the default color. Warning: This is not recommended, because in
  2135.           case of a problem you will not be able to see any error messages,
  2136.           and you may have to boot from a diskette and change the color to
  2137.           find out what the problem is.
  2138.  
  2139.           BOOT.SYS                     -  39  -                Version 1.42
  2140.  
  2141.  
  2142.  
  2143.           CLEAR
  2144.               Erase the BOOT.SYS variables from the DOS environment to free
  2145.               up space.
  2146.  
  2147.           no parameter
  2148.               BOOT.COM  will display  something  similar to  the  following
  2149.               example:
  2150.  
  2151.                    The user selected the following menu choices:
  2152.                       A1
  2153.                       B3
  2154.                       B3A1
  2155.  
  2156.               This would mean that when you booted up your PC, you selected
  2157.               option 1 on the first menu (menu A) and option 3  on the sec-
  2158.               ond  menu (menu B);  that  option  apparently has  a  submenu
  2159.               (menu B3A) and you selected option 1.
  2160.               If there is  only one menu, then  BOOT.COM will also  set the
  2161.               ERRORLEVEL (see below).
  2162.  
  2163.           WARM
  2164.               Do a warm boot (like Alt-Ctrl-Del).
  2165.  
  2166.           COLD
  2167.               Do a cold boot (like turning the power switch off and on).
  2168.  
  2169.               WARM and COLD accept  an optional switch ( /O )  for compati-
  2170.               bility with very /Old BIOS versions.
  2171.  
  2172.           BOOTASSIST <p>
  2173.               See the chapter on BOOTASSIST.
  2174.  
  2175.           VERSION
  2176.               Display whether this  is a registered  or an evaluation  ver-
  2177.               sion, and how to register it.
  2178.  
  2179.           <menu_selector>(1)    {This is obsolete and included for backward
  2180.                                  compatibility only!}
  2181.               This form is used for retrieving the  user's choices (usually
  2182.               in AUTOEXEC.BAT)  after  CONFIG.SYS has  been processed.  The
  2183.               menu  selector is  the  string  of letters  and  digits  that
  2184.               uniquely identifies a  menu.(2) Expanding on the  example 3.1
  2185.               above, BOOT b would display  3 and set the  DOS ERRORLEVEL(3)
  2186.  
  2187.           --------------------
  2188.           1 If there is only one menu, then the <menu_selector> is
  2189.           optional.
  2190.  
  2191.           2 If you specify /P on the BOOT.SYS line in CONFIG.SYS the menu
  2192.           selector (and the nesting level) is displayed in the lower right
  2193.           corner of each menu.
  2194.  
  2195.           3 Be sure to always test ERRORLEVELs in descending order and
  2196.           immediately after the call to BOOT.COM!
  2197.  
  2198.           BOOT.SYS                     -  40  -                Version 1.42
  2199.  
  2200.  
  2201.  
  2202.               to 3, and BOOT b3a would display/return 1. Of course you must
  2203.               always start testing  with the top  level, and only when  you
  2204.               know that BOOT b returns 3, you can ask for BOOT b3a .
  2205.  
  2206.               If  BOOT.SYS is  not  installed  or did  not  stay  resident,
  2207.               BOOT.COM displays an error message and  returns an ERRORLEVEL
  2208.               of 0.
  2209.  
  2210.           HELP
  2211.               Display a summary of this list.
  2212.  
  2213.  
  2214.           PAUSE.SYS, a Debugging Aid
  2215.  
  2216.           You may  have some  very sophisticated  setups by now,  and if  a
  2217.           certain configuration does not  work right it can be  quite chal-
  2218.           lenging to find the problem, especially because the messages from
  2219.           the various drivers scroll by very quickly on fast machines.
  2220.  
  2221.           PAUSE.SYS provides  various functions in  CONFIG.SYS that may  be
  2222.           helpful; the primary function  is similar to what the  PAUSE com-
  2223.           mand does in a batch file:
  2224.  
  2225.  
  2226.                  DEVICE=c:\bin\PAUSE.SYS any text you like
  2227.  
  2228.  
  2229.           will display  the  text and  wait for  you to  press  any key  to
  2230.           continue. The text is always translated to lower  case; to get an
  2231.           upper case character, preceed  the character with a caret (  ^ ),
  2232.           and to display a caret, write two carets.
  2233.  
  2234.           PAUSE.SYS accepts  some  command line  switches  that change  its
  2235.           behavior:
  2236.  
  2237.  
  2238.                  DEVICE=c:\bin\PAUSE.SYS /C         {clear the screen}
  2239.                  DEVICE=c:\bin\PAUSE.SYS /P         {do a PrintScreen}
  2240.                  DEVICE=c:\bin\PAUSE.SYS /O any text {output only, no wait}
  2241.                  DEVICE=c:\bin\PAUSE.SYS /Exxx      {ESC sequence}
  2242.  
  2243.  
  2244.           All of these options suppress the wait for a key. The last option
  2245.           is intended to send escape sequences to ANSI.SYS or a replacement
  2246.           with similar capabilities;  the following lines would  change the
  2247.           screen color to bright  white on blue and clear the  screen, pro-
  2248.           vided that ANSI.SYS is already loaded:
  2249.  
  2250.  
  2251.                  DEVICE=c:\bin\PAUSE.SYS /E[1;37;44m
  2252.                  DEVICE=c:\bin\PAUSE.SYS /E[2^J     {upper case J}
  2253.  
  2254.           BOOT.SYS                     -  41  -                Version 1.42
  2255.  
  2256.  
  2257.  
  2258.           To get a summary of the functions of PAUSE.SYS, just
  2259.  
  2260.  
  2261.                  TYPE PAUSE.SYS
  2262.  
  2263.  
  2264.           from the DOS prompt.
  2265.  
  2266.  
  2267.           Closing Remark
  2268.  
  2269.           By now you have versions of CONFIG.SYS and  AUTOEXEC.BAT that are
  2270.           much more  sophisticated  than usual.  Unfortunately  there is  a
  2271.           growing  trend in  the  software  industry to  provide  automated
  2272.           installation programs that read and update your system configura-
  2273.           tion files, and this leads to some problems:
  2274.  
  2275.             - There are  installation programs  that will boldly  overwrite
  2276.               your configuration files or make other undesirable changes.
  2277.  
  2278.             - Others will  try to make  sense of  the current contents  and
  2279.               then change to whatever their programs  preferences are; they
  2280.               will certainly not be  able to handle CONFIG.SYS  and AUTOEX-
  2281.               EC.BAT correctly when BOOT.SYS is installed.
  2282.  
  2283.             - A third  category of installation  programs will examine  the
  2284.               contents of  CONFIG.SYS and  abort the  installation if  they
  2285.               find   something   offensive.   The   prime    examples   are
  2286.               MS Windows 386 and MS Windows 3.0, which refuse to install if
  2287.               they find a  mention of another  386 control program in  CON-
  2288.               FIG.SYS.
  2289.  
  2290.             - 386MAX and  QEMM386 are in  a class  all by themselves:  they
  2291.               come with installation programs called MAXIMIZE/OPTIMIZE that
  2292.               will change your CONFIG.SYS and reboot several  times to find
  2293.               a good system configuration. These installation programs can-
  2294.               not handle your sophisticated CONFIG.SYS and  they will prob-
  2295.               ably end up  in a 'crash  loop', forcing you  to boot from  a
  2296.               floppy disk to recover.(1)
  2297.  
  2298.           There are two possible  cures to this situation: The first  is to
  2299.           keep a duplicate of  CONFIG.SYS and AUTOEXEC.BAT on hand,  so you
  2300.           can examine the changes and integrate them at  the proper places.
  2301.           In fact, keeping current backups is always a good idea!
  2302.  
  2303.           The second  cure is to  patch IBMBIO.COM  and COMMAND.COM to  use
  2304.           other names for CONFIG.SYS and AUTOEXEC.BAT. Warning: This is not
  2305.           for the faint of heart! If you feel  somewhat uncomfortable doing
  2306.           this, then please do not even try! The  procedure is deliberately
  2307.           not explained  here, because if  you do  not have any  experience
  2308.  
  2309.           --------------------
  2310.           1 For information on how to run MAXIMIZE/OPTIMIZE, please look at
  2311.           "Answers to Common Question, How can I run...".
  2312.  
  2313.           BOOT.SYS                     -  42  -                Version 1.42
  2314.  
  2315.  
  2316.  
  2317.           with patching files, you should not make your first steps in this
  2318.           field with your system  files.(1) - Now to the advantage  of this
  2319.           patch: You will never have to worry  about automated installation
  2320.           programs anymore, because these will assume that you  do not have
  2321.           either  CONFIG.SYS nor  AUTOEXEC.BAT,  they will  usually  create
  2322.           these files,  and you  can go  back and  look calmly  at how  the
  2323.           system should be set up for the program in  question and make any
  2324.           necessary changes yourself.
  2325.  
  2326.  
  2327.  
  2328.                              Answers to Common Questions
  2329.  
  2330.  
  2331.           Why do I get error messages like 'Unrecognized command' from CON-
  2332.           FIG.SYS?
  2333.  
  2334.           With versions of DOS prior to 4.00, commands that have fewer than
  2335.           three characters to the  right of the equal sign cannot  be wiped
  2336.           out cleanly, and DOS  will give an error message similar  to 'Un-
  2337.           recognized command'.
  2338.  
  2339.           This can  usually be fixed  by appending ' x'  to the command  in
  2340.           question; thus  'LASTDRIVE=F'  would become  'LASTDRIVE=F x'  and
  2341.           'BREAK=ON' would become 'BREAK=ON x'. Commands  with numbers like
  2342.           'FILES=20' accept leading zeros, like 'FILES=020'. I  do not know
  2343.           how universal these work-arounds  are - you will have  to experi-
  2344.           ment if they work with your version of DOS.
  2345.  
  2346.  
  2347.           My choice is not recognized in AUTOEXEC.BAT...
  2348.  
  2349.           If you are  still using the  old ERRORLEVEL interface in  AUTOEX-
  2350.           EC.BAT (not documented  anymore), make sure  that all of your  IF
  2351.           ERRORLEVEL tests start with the highest values first.
  2352.  
  2353.           If you are using the environment variable  interface, please turn
  2354.           to the section <<Trouble-shooting Variable Problems>>
  2355.  
  2356.  
  2357.           I get an error message from BOOT.SYS...
  2358.  
  2359.           If BOOT.SYS finds an  error in your CONFIG.SYS file, it  tries to
  2360.           display a useful error message and aborts.  Aborting implies wip-
  2361.           ing out all the commands between BOOT.SYS and BOOT.END . BOOT.COM
  2362.           then returns  an  ERRORLEVEL  code of  0  and displays  an  error
  2363.           message, too.
  2364.  
  2365.  
  2366.           --------------------
  2367.           1 A second word of warning: If you patch your system files and
  2368.           make a bootable diskette, the diskette will get copies of your
  2369.           patched system files, so you must use the new names for CON-
  2370.           FIG.SYS and AUTOEXEC.BAT on the diskette as well.
  2371.  
  2372.           BOOT.SYS                     -  43  -                Version 1.42
  2373.  
  2374.  
  2375.  
  2376.  
  2377.           Will BOOT.SYS get along with automated installation programs that
  2378.           modify CONFIG.SYS and/or AUTOEXEC.BAT?
  2379.  
  2380.           The answer is NO! Please read the chapter "Closing remark" in the
  2381.           Installation section for more information.
  2382.  
  2383.  
  2384.           How can I run the 386MAX/QEMM386 installation programs (MAXIMI-
  2385.           ZE/OPTIMIZE) with BOOT.SYS?
  2386.  
  2387.           To run MAXIMIZE/OPTIMIZE do the following:
  2388.             -  Rename your CONFIG.SYS  and AUTOEXEC.BAT files  to something
  2389.                else.
  2390.             -  Create new  CONFIG.SYS  and AUTOEXEC.BAT  files and  include
  2391.                only those  commands  that  you wish  to  use for  your  new
  2392.                386MAX/QEMM386 configuration (don't include BOOT.SYS!).
  2393.             -  Run MAXIMIZE/OPTIMIZE.
  2394.             -  Merge the new CONFIG.SYS and AUTOEXEC.BAT into  the old ver-
  2395.                sions as your new 386MAX/QEMM386 option.
  2396.           If you patched IBMBIO.COM and COMMAND.COM to  use different names
  2397.           for CONFIG.SYS and AUTOEXEC.BAT, then you must undo those patches
  2398.           or restore the original files, because MAXIMIZE/OPTIMIZE will use
  2399.           the standard file names.
  2400.  
  2401.  
  2402.           BOOT.SYS doesn't work right with the DOS= command in
  2403.           MS/PC-DOS 5.00...
  2404.  
  2405.           Please read the chapter on DOS= in the <<Installation>> section.
  2406.  
  2407.  
  2408.           BOOT.COM says that BOOT.SYS is not installed...
  2409.  
  2410.           There can be two reasons for this error message:
  2411.  
  2412.             - BOOT.SYS is not  installed in your  CONFIG.SYS or failed  for
  2413.               some reason (usually with an appropriate error message).
  2414.  
  2415.             - You are  using BOOT.OPTION  FREE, and BOOT.SYS  did not  stay
  2416.               resident; consequently BOOT.COM has no way of finding it now.
  2417.               The only  purpose of  BOOT.OPTION FREE  is to  define a  boot
  2418.               option that  will  start DOS  without  any resident  programs
  2419.               (like booting from the original DOS  distribution disk), e.g.
  2420.               for experimenting with  TSR conflicts, and  it should not  be
  2421.               used under normal circumstances.
  2422.  
  2423.  
  2424.           Can I use all characters to create boot-up menus?
  2425.  
  2426.           Yes, to create menus you may use any of the  characters of the PC
  2427.           character set (including  the box and foreign  characters) except
  2428.           for NUL, HT, BS,  LF, CR, and Ctrl-Z. The BEL  character (Ctrl-G)
  2429.           sounds the bell and displays a space.
  2430.  
  2431.           BOOT.SYS                     -  44  -                Version 1.42
  2432.  
  2433.  
  2434.  
  2435.  
  2436.           I can't get the columns to align properly...
  2437.  
  2438.           If your editor converts multiple spaces to tabs  then the text on
  2439.           the screen may  not align properly. Your  best bet is to  set the
  2440.           editor so that  it will not compress  spaces to tabs.  - However,
  2441.           everything should  be fine if  the tabs are  on every 8th  column
  2442.           (standard for DOS) and there  are no (or a multiple of  8) spaces
  2443.           to the left of TOP or BOOT.n .
  2444.  
  2445.  
  2446.           Possible problem with BREAK=ON
  2447.  
  2448.           If you  use  the BREAK=ON  command in  your  CONFIG.SYS file  you
  2449.           should make sure that  BREAK really is enabled by  entering BREAK
  2450.           at the DOS prompt. If BREAK is off, try  moving the BREAK=ON com-
  2451.           mand below the BOOT.END line.
  2452.  
  2453.           To avoid this  problem altogether you  can enable BREAK later  in
  2454.           AUTOEXEC.BAT with the command BREAK ON .
  2455.  
  2456.  
  2457.           BOOT.SYS doesn't work right with XMAEM.SYS in PC-DOS 4.0x...
  2458.  
  2459.           PC-DOS 4.0x  and probably  later versions  process the  XMAEM.SYS
  2460.           driver in a  special way: it is  loaded before any other  part of
  2461.           CONFIG.SYS is processed.  Unfortunately this makes  it impossible
  2462.           for BOOT.SYS to control that driver because  XMAEM.SYS is already
  2463.           installed when BOOT.SYS runs.
  2464.  
  2465.           A work-around  to this  problem is  to rename  XMAEM.SYS to  some
  2466.           other name (like XMAEMX.SYS ) and to use that name in the DEVICE=
  2467.           command. Load the renamed driver early in  your CONFIG.SYS, defi-
  2468.           nitely before XMA2EMS.SYS .
  2469.  
  2470.  
  2471.           I have a certain configuration where Alt-Ctrl-Del crashes the
  2472.           system and forces me to hit the big red switch. Can BOOT.SYS
  2473.           help?
  2474.  
  2475.           Yes, BOOT.SYS may be  able to help. Follow the directions  in the
  2476.           BOOTASSIST chapter of the installation section. If  this does not
  2477.           help you may still be able to re-boot from  the command line (see
  2478.           BOOT.COM Command Line Parameters).
  2479.  
  2480.           BOOT.SYS                     -  45  -                Version 1.42
  2481.  
  2482.  
  2483.  
  2484.  
  2485.           The Windows installation program (and maybe others as well) com-
  2486.           plain that I have a 386 memory manager installed...
  2487.  
  2488.           The installation program examines the contents  of CONFIG.SYS and
  2489.           when it finds a  mention of 386MAX, QEMM386, or  similar programs
  2490.           it complains, because Windows  has its own 386  memory management
  2491.           and may have problems with other 386 control programs. The conse-
  2492.           quences of this  for you as  a user of  BOOT.SYS are very  minor:
  2493.           just  set  up a  special  BOOT.SYS  menu  item  specifically  for
  2494.           Windows, possibly one for each mode.
  2495.  
  2496.           The quickest way to get Windows installed is to rename CONFIG.SYS
  2497.           to something  else -  the installation program  will run  without
  2498.           problems, even with one of the offensive programs loaded. It will
  2499.           create a new CONFIG.SYS containing all the commands it expects to
  2500.           have in the BOOT.SYS Windows option of your real CONFIG.SYS file.
  2501.           Look at configuration 32 for an example.
  2502.  
  2503.           Please consult the  chapter "Closing remark" in  the installation
  2504.           section for some general information concerning automated instal-
  2505.           lation programs.
  2506.  
  2507.  
  2508.           What can I do if BOOTASSIST does not work?
  2509.  
  2510.           Try turning BOOTASSIST OFF; if this is successful then BOOTASSIST
  2511.           will not  work with your  configuration and  nothing can be  done
  2512.           about it. If you get an error message, please  refer to the BOOT-
  2513.           ASSIST chapter of the installation section.
  2514.  
  2515.           BOOT.SYS                     -  46  -                Version 1.42
  2516.  
  2517.  
  2518.  
  2519.                                    Revision History
  2520.  
  2521.           0.95   Beta release
  2522.  
  2523.           0.96   Fixed /v in BOOT.COM
  2524.                  Fixed invalid parm error
  2525.  
  2526.           1.00   First public release
  2527.  
  2528.           1.01   Allow '-' along with '/' for command line switches
  2529.  
  2530.           1.10   Documentation update, mention of ASP
  2531.  
  2532.           1.20   Fixed minor  bug that  disabled /Timeout  under some  very
  2533.                  special timing circumstances.
  2534.                  Added /Spacing to BOOT.SYS.
  2535.                  Individual CONFIG.SYS lines can  now be edited on  the fly
  2536.                  while booting up.
  2537.                  New parameters to BOOT.COM:
  2538.                    - "HELP", "/H", "/?", "?" to get a short command summary
  2539.                    - "VERSION" to get version information
  2540.                    - "WARM" and "COLD" to re-boot from  the command line or
  2541.                      from a batch file; "/O" switch  for compatibility with
  2542.                      old BIOSes
  2543.                  New feature to  make Alt-Ctrl-Del perform  a cold boot,  a
  2544.                  warm boot, or no boot (BOOTASSIST).
  2545.                  Option to keep BOOT.SYS from installing  its tiny resident
  2546.                  part to get a  minimal plain-DOS setup (may not  work with
  2547.                  all DOS versions).
  2548.                  New international support channel on CompuServe.
  2549.                  Free CompuServe IntroPak for registered users.
  2550.                  New retail distribution channel in the U.S.A. through PsL.
  2551.  
  2552.           1.21   Fixed bug that caused BOOT.SYS to hang when  it was called
  2553.                  from the first  line of CONFIG.SYS  and running under  DOS
  2554.                  4.xx.
  2555.                  Added new chapter "Quick Start" (Thanks, F.P.).
  2556.                  Added Home/End key support to the BOOT.SYS menus.
  2557.  
  2558.           1.22   Fixed bug that caused BOOT.SYS to ignore  the first switch
  2559.                  on the BOOT.A etc. lines under DOS 4.xx.
  2560.  
  2561.           1.25   Documentation update.
  2562.                  New BOOT.OPTION EXTMON  (Compaq: ok, Toshiba:  needs test-
  2563.                  ing) (Thanks, B.F.).
  2564.                  New BOOT.OPTION COLOR.
  2565.                  New PAUSE.SYS utility.
  2566.                  Fixed several minor bugs.
  2567.  
  2568.           1.26   Fixed a bug where BOOT.COM was reporting the wrong version
  2569.                  (Thanks, S.G.).
  2570.  
  2571.           BOOT.SYS                     -  47  -                Version 1.42
  2572.  
  2573.  
  2574.  
  2575.           1.27   Fixed a bug in PAUSE.SYS (Thanks E.R.).
  2576.                  Minor documentation update.
  2577.                  If /T0 is specified  and no key is pressed, then  the menu
  2578.                  does not flash on and off.
  2579.                  If no key  is pressed the  Shareware screen is never  dis-
  2580.                  played; this allows unattended boot-up without the risk of
  2581.                  waiting for a key to acknowledge the screen.
  2582.                  Several other internal tune-ups.
  2583.  
  2584.           1.40   Full support for the new MS/PC-DOS 5.00 including the DOS=
  2585.                  command.
  2586.                  New BOOT.SET for defining environment  variables from CON-
  2587.                  FIG.SYS.
  2588.                  New /N switch to set/clear NumLock (Thanks B.G.).
  2589.                  BOOT.OPTION EXTMON: new MONO and COLOR (Thanks O.M.).
  2590.                  New case toggle to complement case shift (/Uct).
  2591.                  Several other internal tune-ups.
  2592.                  Major documentation revision.
  2593.  
  2594.           1.41   Fixed a bug in BOOT SET under DOS 3.20 (Thanks B.H.).
  2595.                  Fixed an old bug in BOOT.SYS /Cn (Thanks D.H.).
  2596.                  Several other internal tune-ups.
  2597.                  Minor documentation revision/correction.
  2598.  
  2599.           1.42   Changed message  that  is displayed  when BOOT.SYS  cannot
  2600.                  control the DOS= command because it is loaded high.
  2601.                  Corrected file dates.
  2602.